一 . 人物的移动
在一款游戏种最基本的就是游戏人物的移动,本篇文章就写出一种最基础的人物移动脚本怎么写
1. 基于最简单的坐标方向来实现(先上代码)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Playersprite : MonoBehaviour { // Start is called before the first frame update private Rigidbody2D Player; public float PlayerSpeed; private float Inputx; //x 轴人物移动的方向 private float Inputy; // y轴人物移动的方向 private Animator Myanimator; private float Stopx; // 记录人物停止前最后的移x 轴动方向,用来定位从而实现待机动画 private float Stopy; // 同上 记录 y轴 void Start() { Player = GetComponent<Rigidbody2D>(); Myanimator = GetComponent<Animator>(); } // Update is called once per frame void Update() { Inputx = Input.GetAxis("Horizontal"); Inputy = Input.GetAxis("Vertical"); Vector2 PlayVel = new Vector2(Inputx, Inputy); Player.velocity = PlayVel * PlayerSpeed; if (PlayVel != Vector2.zero) { Myanimator.SetBool("Walk", true); Stopx = Inputx; Stopy = Inputy; } else { Myanimator.SetBool("Walk", false); } Myanimator.SetFloat("Inputx", Stopx); Myanimator.SetFloat("Inputy", Stopy); } }
再动画编辑器里新建两个新混合树
一个叫 Idle Walk
如图 idle
如图 Run