我想更改默认的天空盒材料,所以我制作了这条线......之后我才看到蓝色...我的错误是什么?
材料在远离
的Assets文件夹中Material levelMat = Resources.Load(Application.dataPath + "/testeVR.mat", typeof(Material)) as Material;
RenderSettings.skybox = levelMat;
答案 0 :(得分:2)
材料在远离
的Assets文件夹中
如果您使用Resources.Load
加载材料,则无法将材料放置在“资源”文件夹中。
之后我只看到蓝色
levelMat
变量为null
。当您申请Skybox的材料为空时,您会变为蓝色,您可以通过在其后面添加Debug.Log(levelMat);
来证明这一点。
Material levelMat = Resources.Load(Application.dataPath + " /testeVR.mat" ;, typeof(Material))作为材料;
你也不能这样做。 Application.dataPath
不应在Resources.Load
函数的路径参数中使用。
您的代码中很难理解:
1 。Resources.Load
需要一个名为 Resources 的特殊文件夹。在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;
答案 1 :(得分:0)
只需创建材质的公共变量并在运行时放置要加载的材质,或者如果要通过某个函数加载它,请使用此
@model IEnumerable<WebApplication3.Models.ViewModel.AddingNewRole>
@foreach (var item in Model)
{
foreach (var v in item.LookUpRoles)
{
<tr>
<td>
@Html.DisplayFor(modelItem => v.LookUpRoleId)
</td>
<td>
@Html.DisplayFor(modelItem => v.RoleName)
</td>
@for(var i=0; i<item.UserRoles.Count();i++)
{
if (v.LookUpRoleId == item.UserRoles[i].RoleId)
{
<td>
<input id=@v.LookUpRoleId class="use-this switch-toggle switch-flat-mini switch-toggle-flat" type="checkbox">
<label for=@v.LookUpRoleId></label>
</td>
break;
}
<td>
<input id=@v.LookUpRoleId checked="checked" class="use-this switch-toggle switch-flat-mini switch-toggle-flat" type="checkbox">
<label for=@v.LookUpRoleId></label>
</td>
break;
}
</tr>
}
}
skyboxMat存储了以统一方式拖动它的材质,然后它变成了你的天空盒
RenderSetting.sky = skyboxMat;