Unity中的C#错误

时间:2016-06-11 13:52:51

标签: c# unity3d colors scripting

我遇到了脚本错误。但首先我正在做的事情。

我的文字很丰富,系统看起来应该是这样的。每一秒,新的不同颜色。但我编写了代码脚本并显示错误。像:

  

错误CS0619: UnityEngine.Component.renderer' is obsolete:已弃用属性渲染器。请改用GetComponent()。 (UnityUpgradable)'

     

错误CS1061 :输入UnityEngine.Component' does not contain a definition for素材'并且没有扩展方法material' of type UnityEngine.Component'可以找到(你错过了使用指令或程序集引用吗?)

脚本就是这个。

using UnityEngine;
using System.Collections;

public class Colors : MonoBehaviour

{
    public float timer = 0.0f;

    void Start()
    {

    }


    void Update()
    {
        timer += Time.deltaTime;
        if (timer >= 2.0f)//change the float value here to change how long it takes to switch.
        {
        // pick a random color
            Color newColor = new Color(Random.value, Random.value, Random.value, 1.0f);
        // apply it on current object's material
            renderer.material.color = newColor;
            timer = 0;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您不能再从Unity 5开始直接访问renderer.material.color了。您必须先使用GetComponent<Renderer>();获取GameObject的组件,然后才能访问Renderer中的材料。

public float timer = 0.0f;
 Renderer rd;

 void Start()
 {
     rd = gameObject.GetComponent<Renderer>();
 }


 void Update()
 {
     timer += Time.deltaTime;
     if (timer >= 2.0f)//change the float value here to change how long it takes to switch.
     {
         // pick a random color
         Color newColor = new Color(Random.value, Random.value, Random.value, 1.0f);
         // apply it on current object's material
         rd.material.color = newColor;

         timer = 0;
     }
 }