我是团结的新手,我只是想知道如何设置C#的材料?
我有一个预制模型,我可以从编辑器更改纹理没问题.我想要做的是在生成预制件实例时随机设置材料.
这是我要改变的字段:
我正在使用以下代码创建它们:
Instantiate(eggPrefab, spawnPos, Quaternion.identity);
(其中eggPrefab是一个公共变换).
我希望这是足够的信息!
谢谢.
解决方法:
我认为将随机材料行为与创建行为混合是过于复杂的事情.只需创建一个在Start上随机化GameObject材质的组件,它就会在您实例化预制件时运行.
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)];
}
}
将它附在你的预制件上,现在当你产生它们时,它们会有随机的材料.您现在也可以选择在非预制对象上使用相同的代码.只是不要忘记分配材料!
原文地址:https://codeday.me/bug/20190611/1215648.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。