我的渲染器有个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行
您不能再直接访问从MonoBehaviour
继承的renderer
。您必须使用GetComponent
才能获得Renderer
。同样的事情也适用于其他组件,如Rigidbody
和AudioSource
。
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;
也可以工作,但最好像我在第一个脚本中那样缓存它。