【问题标题】:c# / unity - error CS0619 and error CS1061 [duplicate]c# / unity - 错误 CS0619 和错误 CS1061 [重复]
【发布时间】:2019-08-25 14:43:11
【问题描述】:

我正在观看一个似乎可以工作的教程,但就我而言,我遇到了以下错误:

错误 CS0619 'Component.renderer' 已过时:'属性渲染器已被弃用。请改用 GetComponent()。 (UnityUpgradable)' Assembly-CSharp D:\Unity Projects\Unity Fundamentals\Assets\Scripts\ObjectColor.cs

还有这个:

错误 CS1061“组件”不包含“材料”的定义,并且找不到接受“组件”类型的第一个参数的可访问扩展方法“材料”(您是否缺少 using 指令或程序集引用?) Assembly-CSharp D:\Unity Projects\Unity Fundamentals\Assets\Scripts\ObjectColor.cs

这是脚本:

public class ObjectColor : MonoBehaviour 
{
    public Color changedColor = Color.white;
    public Color originalColor = Color.white;

    void Awake()
    {
        originalColor = this.renderer.material.color;
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.G))
        {
            this.renderer.material.color = changedColor;
        }
        else if (Input.GetKeyUp(KeyCode.G))
        {
            this.renderer.material.color = originalColor;
        }
    }

【问题讨论】:

标签: c# unity3d


【解决方案1】:

不久前,Componentrenderer 属性已被弃用(不再使用)。而不是这样做,您应该使用GetComponent<Renderer>() 来获取对渲染器的引用,如下所示:

var renderer = this.GetComponent<Renderer>();

这也应该可以解决您的第二个问题,因为您可以像这样访问渲染器的材质:

var material = GetComponent<Renderer>().material;
originalColor = material.color;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 2021-03-08
    • 1970-01-01
    相关资源
    最近更新 更多