c# - 使用unity C#设置 Material 颜色

标签 c# unity3d monodevelop

我正在 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/

相关文章:

c# - 获取两个 List<> 对象之间差异的快速方法

c# - 如何防止 Visual Studio 在 Web 项目中使用 "publishing"XML 文档文件?

unity3d - 统一: The variable rb of Movement has not been assigned

c# - MonoTouch.Dialog:导航栏中的返回项

c# - 如何使我的网站免受 XSS 攻击。如何跟踪发出数千个假请求的IP?

C# - 就地修改数组,而不在内存中创建另一个数组

c# - Unity3D - 抽象类,单一行为功能

c# - Unity SDK 中的 FB.API 不发布分数

ios - 使用 Xcode 4.2 在 MonoTouch 中将空应用程序修改为基于窗口的应用程序需要哪些步骤?

.net - MS Visual Studio .NET 的替代品