Tar*_*fih 5 assets unity-game-engine material unityscript
在我的Assets文件夹中,我有一个名为Material的文件夹,其中我存储了所有需要的材料,Material文件夹中的一个材料Night_Sky,我想在游戏的某个时刻替换day_sky并设置Night_sky为我的默认Skybox.我尝试了很多代码,所有代码都返回null对象,例如:
night = Resources.Load("Material", typeof(Material)) as Material;
Run Code Online (Sandbox Code Playgroud)
要么
night = Resources.Load("Material/Night_Sky.mat", typeof(Material)) as Material;
Run Code Online (Sandbox Code Playgroud)
如何加载我的Night_Sky素材,或者如果有更简单的方法来切换我的天空盒以night_sky感谢您分享它
这不起作用,因为Resources.Load要求您将对象放在Resources文件夹中.此信息也可以在Unity Docs中找到
为了正常工作,您需要创建一个名为Resources Inside the Assets文件夹的文件夹.之后,您可以将Material文件夹添加到此文件夹中.所以文件夹结构如下所示
Assets/Resources/Materials/Night_Sky.mat
Run Code Online (Sandbox Code Playgroud)
更多加载材料的脚本看起来很好.
如果您确实不希望使用资源文件夹,则可以尝试使用System.IO文件夹搜索选项获取材料.但我建议你只使用在Resources函数中构建.
Resources.Load()但是当你使用它时,你需要记住一些事情.该path是区分大小写的,并要求你添加的文件扩展名也.因此,在上面的示例中,这将导致:
myMaterial = Resources.Load("Materials/Night_Sky.mat");
Run Code Online (Sandbox Code Playgroud)
正如Nika Kasradze在评论中提到的那样.在unity 5.0或更高版本中必须省略扩展名.制作正确的unity5语法
myMaterial = Resources.Load("Materials/Night_Sky");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8526 次 |
| 最近记录: |