56 lines
1.1 KiB
C#
56 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
public class TextureMovementDemo : MonoBehaviour
|
|
{
|
|
public float movementSpeed = 0.5f;
|
|
|
|
public Sprite[] spriteArray;
|
|
|
|
private int currentSpriteIndex;
|
|
|
|
private Renderer materialRenderer;
|
|
|
|
private Material material;
|
|
|
|
private SpriteRenderer spriteRenderer;
|
|
|
|
private void Start()
|
|
{
|
|
materialRenderer = GetComponent<Renderer>();
|
|
material = materialRenderer.material;
|
|
spriteRenderer = GetComponent<SpriteRenderer>();
|
|
if (spriteArray.Length != 0)
|
|
{
|
|
spriteRenderer.sprite = spriteArray[currentSpriteIndex];
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
float x = Time.time * movementSpeed;
|
|
material.SetTextureOffset("_MainTex", new Vector2(x, 0f));
|
|
if (Input.GetKeyDown(KeyCode.RightArrow))
|
|
{
|
|
ChangeSprite(1);
|
|
}
|
|
else if (Input.GetKeyDown(KeyCode.LeftArrow))
|
|
{
|
|
ChangeSprite(-1);
|
|
}
|
|
}
|
|
|
|
private void ChangeSprite(int direction)
|
|
{
|
|
currentSpriteIndex += direction;
|
|
if (currentSpriteIndex < 0)
|
|
{
|
|
currentSpriteIndex = 0;
|
|
}
|
|
else if (currentSpriteIndex >= spriteArray.Length)
|
|
{
|
|
currentSpriteIndex = spriteArray.Length - 1;
|
|
}
|
|
spriteRenderer.sprite = spriteArray[currentSpriteIndex];
|
|
}
|
|
}
|