微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如何在GameObject上动态设置随机材质

我是团结的新手,我只是想知道如何设置C#的材料?

我有一个预制模型,我可以从编辑器更改纹理没问题.我想要做的是在生成预制件实例时随机设置材料.

这是我要改变的字段:

Unity Field

我正在使用以下代码创建它们:

@H_404_12@Instantiate(eggPrefab, spawnPos, Quaternion.identity);

(其中eggPrefab是一个公共变换).

我希望这是足够的信息!

谢谢.

解决方法:

我认为将随机材料行为与创建行为混合是过于复杂的事情.只需创建一个Start随机化GameObject材质的组件,它就会在您实例化预制件时运行.

@H_404_12@public class MaterialRandomiser : MonoBehavIoUr { [Serializefield] private Material[] _materials; [Serializefield] private Renderer _renderer; public void Start () { ChangeMaterial(); } public void Reset () { _renderer = GetComponent<Renderer>(); } public void ChangeMaterial () { _renderer.material = SelectRandomMaterial(); } private Material SelectRandomMaterial () { return _materials[Random.Range(0, _materials.Length)]; } }

将它附在你的预制件上,现在当你产生它们时,它们会有随机的材料.您现在也可以选择在非预制对象上使用相同的代码.只是不要忘记分配材料!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐