- 当你拥有角色四个不同方向的图片时,通过Sprite Renderer组件中的Sprite改变渲染图片来更改运动时的方向。
private SpriteRenderer sr;
//声明一个变量用来获取角色的SpriteRenderer组件。
public Sprite[] kSprite;
//声明一个Sprite数组用来访问需要更改渲染的图片。
//用public访问修饰符访问,可在Inspectoe菜单的代码组件中直接访问到。
//将角色的上下左右状态图片依次拖入代码组件的sprite数组中。则上下左右依次对应下标为0,1,2,3。(也可以随意拖动,只要调用时一一对应即可。)
private void Awake()
{
sr = GetComponent<SpriteRenderer>();
}
//在调用前通过Awake获取SpriteRenderer组件。
void Uptade()
{
float h = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector3.right*h*Time.deltaTime, Space.World);
//水平方向位置移动,详解看上节代码
if(h < 0)
{
sr.sprite = kSprite[2];
//按下左方向键时,h = -1。更改SpriteRenderer组件中sprite的值为左方向图片。
}
else if(h > 0)
{
sr.sprite = kSprite[3];
//按下右方向键时,h = 1。更改SpriteRenderer组件中sprite的值为右方向图片。
}
float v = Input.GetAxisRaw("Vertical");
transform.Translate(Vector3.up*v*Time.deltaTime, Space.World);
if(v < 0)
{
sr.sprite = kSprite[1];
}
else if(v > 0)
{
sr.sprite = kSprite[0];
}
//垂直方向同理。
}
- 现在运行我们的unity,角色就可以根据你的按键转变方向了。