我的渲染器有个bug

本文关键字:bug 我的 | 更新日期: 2023-09-27 18:14:03

public class Scroll : MonoBehaviour {
    public float speed = 0.5f;
    void Update()
    {
        Vector2 offset = new Vector2(0, Time.time * speed);
       renderer.material.mainTextureOffset = offset;
    }

我不明白问题在哪里,但它应该是在渲染器。材料的部分。

我把这段代码放在一个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'和没有扩展方法material' of type UnityEngine。可以找到组件(您是否缺少using指令或程序集引用?)-能够解析文件Assets/Game scene.unity.meta:[不允许控制字符]在第0行

我的渲染器有个bug

您不能再直接访问从MonoBehaviour继承的renderer。您必须使用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;也可以工作,但最好像我在第一个脚本中那样缓存它。