1.始终让人物朝向鼠标的一侧
public class PlayerMove : MonoBehaviour
{
public float moveSpeed;
private Rigidbody2D rb;
private Animator animator;
private Vector2 input; //监听方向键
private Vector2 mousePos; //鼠标位置
private Vector2 direct;
// Start is called before the first frame update
void Start()
{
animator = GetComponent<Animator>();
rb = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
input.x = Input.GetAxisRaw("Horizontal");
input.y = Input.GetAxisRaw("Vertical");
//.normalized方法让moveDiretion向量长度变为1,但方向不变。
//运动
rb.velocity = input.normalized * moveSpeed;
mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
//判断转向
if (mousePos.x > transform.position.x)
{
transform.rotation = Quaternion.Euler(new Vector3(0, 0, 0));
}
else
{
transform.rotation = Quaternion.Euler(new Vector3(0, 180, 0));
}
//动画,记得动画取消勾选“有退出时间”
if (input != Vector2.zero)
animator.SetBool("isMoving", true);
else
animator.SetBool("isMoving", false);
}
}