繁体   English   中英

在 Unity 3D (C#) 中更改纹理?

[英]Change texture in Unity 3D (C#)?

我有 3 种材质,每种材质都有独特的纹理,我如何在游戏中动态地在这 3 种材质之间进行切换?

如果您在材质之间切换,您只需执行类似的操作,具体取决于您是否有 MeshRenderer(非装配/动画)object 或 SkinnedMeshRenderer(装配/动画)object。 如果您在此检查器中检查 select 您的 GameObject,您可以查看您的 object 是否具有 MeshRenderer 或 SkinnedMeshRenderer。 假设 MeshRenderer 与您附加的脚本处于同一级别。

Material redMaterial;
Material greenMaterial;

public void ChangeRedMaterial() {
    gameObject.GetComponent<MeshRenderer>().material = redMaterial;
    //alternative gameObject.GetComponent<SkinnedMeshRenderer>().material = redMaterial;
}

根据我们的层次结构,您可能需要使用 GetComponentInChildren 而不是 GetComponent。 您还可以传递其他游戏对象和切换材质:

gameObject.GetComponent<MeshRenderer>().material = gameObjectTwo.GetComponent<MeshRenderer>().material;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM