在Unity中利用代码动态更改游戏场景中的天空盒(亲测有效)
首先要在场景中新建一个材质球,并把材质球的类型改成为Skybox/6 Sided,然后把天空盒的六个面分别选择一张UI图片!
接下来在场景中新建一个名称为Test的C#的脚本,然后可以把这个脚本绑定在游戏场景中的任何一个游戏物体身上,并把下列这些代码复制到脚本中!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour {
public Material sky1;
void Update()
{
//当运行游戏时,按下键盘的空格键就执行if语句的下列代码
if(Input.GetKeyDown(KeyCode.Space))
{
//替换天空盒
RenderSettings.skybox = sky1;
}
}
}
注意:
1、一定要移除掉场景中绑定了主摄像机游戏物体身上的Skybox组件!!!
2、因为在这个脚本中Material 属性我是打算直接采用了属性面板直接赋值,所以复制并保存好脚本后,回到游戏场景中,并把之前制作好了的材质球赋给我们脚本中的sky1,最后才可以运行游戏!!!