Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以编程方式更改Skybox材质(c#)_C#_Unity3d_Skybox - Fatal编程技术网

以编程方式更改Skybox材质(c#)

以编程方式更改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 =

我想更改默认的skybox材质,所以我做了以下几行。。。之后我只看到蓝色。。。我犯了什么错

材料位于“资产”文件夹中的“资产”文件夹中

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中工作。但在安卓系统中,它失败了吗?在安卓系统中仍然是蓝色的。