在Unity中控制人物移动和转身功能
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerContral : MonoBehaviour
{
Animator animator;
//判断是否面朝右面
public bool facingRight = true;
//移动速度
public float runSpeed = 5;
Rigidbody2D rigidbody;
Quaternion _rotation;
void Start()
{
rigidbody = GetComponent<Rigidbody2D>();
animator = GetComponent<Animator>();
_rotation=transform.rotation;
}
void Update()
{
//走路动画的播放
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.D))
{
animator.SetBool("walk", true);
}
else { animator.SetBool("walk",false); }
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
//设置移动
rigidbody.velocity=new Vector2 (h*runSpeed,v*runSpeed);
//设置转身功能
if (h > 0 && !facingRight) { Filp(); }
else if (h < 0 && facingRight) { Filp(); }
}
public void Shuchu() {
}
void Filp() {
facingRight = !facingRight;
//Vector3 theScale = transform.localScale;
//theScale.x *= -1;
//transform.localScale = theScale;
_rotation.y += 180;
if (_rotation.y >= 360) { _rotation.y -= 360; }
transform.rotation = _rotation;
}
}
通过以上的代码可以实现人物的走路动画和移动转身