以编程方式更改Skybox材质(c#)
我想更改默认的skybox材质,所以我做了以下几行。。。之后我只看到蓝色。。。我犯了什么错 材料位于“资产”文件夹中的“资产”文件夹中以编程方式更改Skybox材质(c#),c#,unity3d,skybox,C#,Unity3d,Skybox,我想更改默认的skybox材质,所以我做了以下几行。。。之后我只看到蓝色。。。我犯了什么错 材料位于“资产”文件夹中的“资产”文件夹中 Material levelMat = Resources.Load(Application.dataPath + "/testeVR.mat", typeof(Material)) as Material; RenderSettings.skybox = levelMat; 材料位于“资产”文件夹中的“资产”文件夹中 Material levelMat =
Material levelMat = Resources.Load(Application.dataPath + "/testeVR.mat", typeof(Material)) as Material;
RenderSettings.skybox = levelMat;
材料位于“资产”文件夹中的“资产”文件夹中
Material levelMat = Resources.Load(Application.dataPath + "/testeVR.mat", typeof(Material)) as Material;
RenderSettings.skybox = levelMat;
如果使用资源加载物料,则无法将其放置在资产文件夹中。加载
之后我只看到蓝色
levelMat
变量为null
。当应用到Skybox的材质为空时,您会得到蓝色,您可以通过添加Debug.Log(levelMat)来证明这一点代码>在它之后
Material levelMat=Resources.Load(Application.dataPath+
“/testeVR.mat”,作为材料的(材料)类型
你也不能这样做。资源.Load
函数的path参数中不应使用应用程序.dataPath
从您的代码中可以了解的几件事:
1资源。加载
需要一个名为资源的特殊文件夹。在Assets目录中创建一个名为Resources的文件夹,然后将testeVR.mat放在其中
2。您可以不将文件扩展名放在Resources.Load
函数的path参数中。因此,testeVR.mat实际上应该是testeVR,不带“.mat”
只需在Assets文件夹中创建一个名为Resources的文件夹,然后将testeVR材料放在这个地方。它应该是这样的:Assets/Resources/testeVR.mat。应使用下面的代码加载它
Material levelMat = Resources.Load("testeVR", typeof(Material)) as Material;
现在,假设您有另一个名为“Mats”的文件夹,它位于Resources文件夹中。您可以使用以下内容:
Material levelMat = Resources.Load("Mats/testeVR", typeof(Material)) as Material;
只需创建material的公共变量,并在运行时放置要加载的材质,或者如果要通过某个函数加载,请使用此函数
RenderSetting.sky = skyboxMat;
skyboxMat存储了将其统一拖动的材质,然后它就成为skybox的一部分
public Material skyboxMat;
voidstart(){ RenderSetting.skybox = skyboxMat;}
它有镜面反射/纹理吗?它在编辑器和iOS中工作。但在安卓系统中,它失败了吗?在安卓系统中仍然是蓝色的。