我一直在尝试在2D Unity项目中使用Sprite来实现滚动背景效果。
我已经看到此代码在带有MeshRenderer的3D对象上使用以达到这种效果,但这似乎不适用于带有SpriteRenderer的Sprite。有人知道为什么吗?
public class ScrollingTexture : MonoBehaviour {
public float ScrollSpeed = -0.5f;
private Vector2 _savedOffset;
private Renderer _renderer;
private void Start ()
{
_renderer = GetComponent<Renderer>();
_savedOffset = _renderer.material.mainTextureOffset;
}
private void Update()
{
float x = Mathf.Repeat (Time.time * ScrollSpeed, 1);
Vector2 offset = new Vector2(x, _savedOffset.y);
_renderer.material.mainTextureOffset = offset;
}
private void OnDisable()
{
_renderer.material.mainTextureOffset = _savedOffset;
}
}
更新: 为了使其正常工作,我按照建议添加了新材质并将其着色器设置为“不亮/透明”。我还必须确保Sprite本身的Wrap Mode设置为Repeat。我尚未修复检查器警告。