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行不允许控制字符]
答案 0 :(得分:0)
您无法再直接访问从renderer
继承的MonoBehaviour
。您必须使用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;
也可能有效,但最好像我在第一个脚本中那样缓存它。