我在渲染器中有一个错误

时间:2016-10-20 10:24:21

标签: c# unity3d

public class Scroll : MonoBehaviour {

    public float speed = 0.5f;

    void Update()
    {
        Vector2 offset = new Vector2(0, Time.time * speed);

       renderer.material.mainTextureOffset = offset;

    }

我不明白问题所在,但它应该在renderer.material部分。

我已将此代码放入Quad中以尝试将其作为我的背景。

编辑:错误消息: - Assets / Scroll.cs(12,8):错误CS0619:UnityEngine.Component.renderer' is obsolete:已弃用属性渲染器。请改用GetComponent()。 (UnityUpgradable)' - Assets / Scroll.cs(12,17):错误CS1061:输入UnityEngine.Component' does not contain a definition for材料'并且没有扩展方法material' of type UnityEngine.Component'可以找到(你错过了使用指令或程序集引用吗?) - 无法解析文件Assets / Game scene.unity.meta:[第0行不允许控制字符]

1 个答案:

答案 0 :(得分:0)

您无法再直接访问从renderer继承的MonoBehaviour。您必须使用GetComponent获取Renderer。同样的事情也适用于其他组件,例如RigidbodyAudioSource

Renderer myRenderer;
public float speed = 0.5f;

void Start()
{
    myRenderer = GetComponent<Renderer>();
}

 // Update is called once per frame
 void Update()
 {
     Vector2 offset = new Vector2(0, Time.time * speed);
     myRenderer.material.mainTextureOffset = offset;
 }

当然,GetComponent<Renderer>().material.mainTextureOffset = offset;也可能有效,但最好像我在第一个脚本中那样缓存它。