gpt4 book ai didi

unity3d - 从 Unity 中的 Assets 加载 Material

转载 作者:行者123 更新时间:2023-12-04 17:34:24 26 4
gpt4 key购买 nike

在我的 Assets 文件夹中,我有一个名为 Material 的文件夹,我在其中存储了所有需要的 Material ,Material 文件夹中的 Material 之一是 Night_Sky ,我想在游戏的某个时刻替换 day_sky并设置 Night_sky作为我的默认 Skybox。我尝试了很多代码,它们都返回空对象,示例:

night = Resources.Load("Material", typeof(Material)) as Material;

或者
night = Resources.Load("Material/Night_Sky.mat", typeof(Material)) as Material;

如何加载我的 Night_Sky Material ,或者是否有更简单的方法将我的天空盒切换到 night_sky谢谢你的分享

最佳答案

这将不起作用,因为 Resources.Load 要求您将对象放在 Resources 文件夹中。此信息也可以在 Unity Docs 中找到

为了使其正常工作,您需要在 Assets 文件夹中创建一个名为 Resources 的文件夹。之后,您可以向其中添加 Material 文件夹。所以文件夹结构如下

Assets/Resources/Materials/Night_Sky.mat

此外,加载 Material 的脚本看起来还不错。

如果您真的不想使用资源文件夹,您可以尝试使用 System.IO 文件夹搜索选项来获取 Material 。但我建议您只使用资源功能中的构建。

当您使用 Resources.Load() 时但是,您需要记住一些事项。 path区分大小写并要求您添加文件扩展名。所以在上面的例子中,这将导致:
myMaterial = Resources.Load("Materials/Night_Sky.mat"); 

Unity 5.0 或 >

Nika Kasradze评论中提到。在 unity 5.0 或更高版本中,必须省略扩展。制作正确 句法
myMaterial = Resources.Load("Materials/Night_Sky"); 

关于unity3d - 从 Unity 中的 Assets 加载 Material ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28066083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com