-
Notifications
You must be signed in to change notification settings - Fork 0
/
PlayerMove.cs
52 lines (47 loc) · 1.4 KB
/
PlayerMove.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using UnityEngine;
using System.Collections;
public class PlayerMove : MonoBehaviour
{
public static PlayerMove _instance;
private CharacterController cc;
public float speed = 5;
private Animator animator;
private Vector3 targetDir;
public Vector3 _targetDir { get { return targetDir; } }
#region 角色移动控制
void Awake()
{
cc = this.GetComponent<CharacterController>();
animator = this.GetComponent<Animator>();
_instance = this;
}
void Update()
{
//获取x,y方向的偏移值
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
if (JoyStick.h!=0|| JoyStick.v!=0)
{
h = JoyStick.h;
v = JoyStick.v;
}
//改变朝向
if (Mathf.Abs(h) > 0.1 || Mathf.Abs(v) > 0.1)
{
// 改变行走状态
animator.SetBool("Walk",true);
//播放行走动画时才产生移动,否则移动动画和攻击动画会重合
if (animator.GetCurrentAnimatorStateInfo(0).IsName("PlayerRun"))
{
targetDir = new Vector3(h, 0, v);
transform.LookAt(targetDir + transform.position);
cc.SimpleMove(transform.forward * speed);
}
}
else
{
animator.SetBool("Walk", false);
}
}
#endregion
}