public class CharacterTest1 : MonoBehaviour
{
// Start is called before the first frame update
CharacterController controller;
public float speed = 1.0f;
private float playerSpeed = 0.0f;
public float rotationSpeed = 180.0f;
void Start()
{
controller = GetComponent();
}
void Update()
{
Move2();
}
void Move()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
if (h!=0 || v!=0) {
print("h:" + h + " && v:" + v);
}
Vector3 dir = new Vector3(speed*h, 0, speed*v);
controller.SimpleMove(dir);
}
void Move2() {
//角色的朝向
Vector3 playerForward = this.transform.TransformDirection(Vector3.forward);
//向前移动
if (Input.GetKey(KeyCode.W))
{
playerSpeed = 5.0f;
}
else if (Input.GetKey(KeyCode.S))
{
playerSpeed = -5.0f;
}
else if (Input.GetKey(KeyCode.A))
{
//this.transform.Rotate(Vector3.up * -10);
transform.Rotate(Vector3.down * rotationSpeed * Time.deltaTime, Space.Self);
}
else if (Input.GetKey(KeyCode.D))
{
//this.transform.Rotate(Vector3.up * 10);
transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime, Space.Self);
}
else
{
playerSpeed = 0.0f;
}
controller.SimpleMove(playerForward * playerSpeed);
}
}