我正在 UNITY 中开发游戏。到目前为止,对于这个游戏,我有 3 个我希望瞄准的立方体。我将它们设置在一个数组中,当我点击选项卡时,目标会根据距离在它们之间切换。这一切都很好,但我遇到了一个问题,我希望我的目标立方体变成红色以进行视觉表示。我在 Youtube 上看到人们使用以下代码行:
selectedTarget.renderer.material.color = Color.red;
但是这对我不起作用。然后我看到一条评论说: 渲染函数已弃用。下面应该工作...
selectedTarget.GetComponent<Renderer>().material.color = Color.red;
此代码对我也不起作用。请注意,我没有收到任何错误,它运行良好,但立方体不会变红。有谁知道我这样做是否正确?我将在下面发布整个脚本,我所关注的代码在 selectedTarget() 中。如有任何帮助,我们将不胜感激,谢谢!
private void SelectTarget(){
selectedTarget.renderer.material.color = Color.red;
}
最佳答案
我遇到了非常非常非常相同的问题。我没有错误。您需要能够在 Material 上设置颜色属性,并且只有某些着色器具有此颜色属性。例如,我必须使用自发光/碰撞而不是移动/VertexLit。然后更改颜色应该没问题,因为您可以在编辑器/检查器中看到 Main Color 属性。
还要确保您的网格具有 Material 。如果您没有 Material ,即使它是空白的或占位符也不会起作用!我会创建一个纹理,最好是白色,小到 5x5。然后将纹理附加到您的立方体。粘贴后,您可以给它上色!
我在我的游戏中使用 Color.Lerp 做了很酷的事情,它会从一种颜色淡入另一种颜色!当玩家被敌人击中表示受到伤害时,下面的乒乓球从白色变为红色!
transform.renderer.material.color = Color.Lerp(Color.white, Color.red, Mathf.PingPong(Time.time * 3 * speedLerp, 1.0));
关于c# - 使用unity C#设置 Material 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29801696/