以编程方式更改Skybox材质(c#)
我想更改默认的天空盒材质,因此我创建了这一行...之后,我只看到蓝色...我的错误是什么?以编程方式更改Skybox材质(c#)
的材料是关于资产文件夹中客场
Material levelMat = Resources.Load(Application.dataPath + "/testeVR.mat", typeof(Material)) as Material;
RenderSettings.skybox = levelMat;
的材料是关于资产文件夹中客场
不能将材料放置在资源文件夹如果你正在加载它Resources.Load
。
之后,我只看到蓝色
的levelMat
变量是null
。当您申请Skybox的材料为空时,您会变蓝并且您可以在其后添加Debug.Log(levelMat);
来证明这一点。
Material levelMat = Resources.Load(Application.dataPath + “/testeVR.mat”,typeof(Material))as Material;
你也不能这样做。不应在Resources.Load
函数的路径参数中使用Application.dataPath
。
很少有东西从你的代码的理解:
。 Resources.Load
需要一个名为的特殊文件夹资源。在资产目录中创建一个名为Resources的文件夹,然后在其中放置testeVR.mat。
。你做不把文件扩展名的Resources.Load
功能的路径参数。所以,testeVR.mat实际上应该是testeVR没有“.mat”。
只需创建一个名为资源在资产文件夹然后将testeVR材料这个地方里面的文件夹。它应该看起来像这样:Assets/Resources/testeVR.mat。下面的代码应该用来加载它。
Material levelMat = Resources.Load("testeVR", typeof(Material)) as Material;
现在,让我们说你有一个名为“垫”这是在资源文件夹中的另一个文件夹。你会使用类似如下:
Material levelMat = Resources.Load("Mats/testeVR", typeof(Material)) as Material;
谢谢你,这个作品!完善。很好的解释! –
不客气! – Programmer
刚刚创造物质的公共变量,并把你想成为负载材料在运行时,或者如果你想通过一些功能的使用本
RenderSetting.sky = skyboxMat;
加载它skyboxMat存储将其拖动到一体的材质,然后它变成您的天空盒的一部分
public Material skyboxMat;
voidstart(){ RenderSetting.skybox = skyboxMat;}
它是否具有高光/质感? –