方法一:使用Transform组件
public class Mover : MonoBehaviour
{
public float speed = 10f;
private void Update()
{
float hMove = Input.GetAxis("Horizontal") * speed;
float vMove = Input.GetAxis("Vertical") * speed;
Vector3 translation = new Vector3(hMove, 0f, vMove) * Time.deltaTime;
transform.Translate(translation);
}
}
方法二:使用CharacterController组件
public class MoveByCharacterController : MonoBehaviour
{
public float speed = 5f;
private CharacterController controller;
private void Start()
{
controller = GetComponent<CharacterController>();
}
private void Update()
{
Vector3 velocity = new Vector3(Input.GetAxis("Horizontal"), 0f,
Input.GetAxis("Vertical")) * speed;
controller.SimpleMove(velocity);
}
}
本文介绍两种Unity中实现角色移动的方法。第一种使用Transform组件通过Translate方法实现2D或3D对象的位置更新。第二种利用CharacterController组件,通过SimpleMove方法使角色响应键盘输入,适用于第一人称或第三人称游戏。
1820

被折叠的 条评论
为什么被折叠?



