1. 太空射击Demo
void FixedUpdate()
{
float h = Input.GetAxis("Horizontal"); // 获取左右移动输入
float v = Input.GetAxis("Vertical"); // 获取前后移动输入
// 移动控制
Vector3 move = new Vector3(h, 0f, v);
m_Rigidbody.velocity = speed * move;
// 移动边界xianzhi
m_Rigidbody.position = new Vector3(
Mathf.Clamp(m_Rigidbody.position.x, bound.xmin, bound.xmax),
0f,
Mathf.Clamp(m_Rigidbody.position.z, bound.zmin, bound.zmax)
);
}
2.刚体移动
void Update () {
if (Input.GetKey (KeyCode.W)) {
m_Rigidbody.MovePosition (m_Transform.position+Vector3.forward);
}
if (Input.GetKey (KeyCode.S)) {
m_Rigidbody.MovePosition (m_Transform.position+Vector3.back);
}
if (Input.GetKey (KeyCode.A)) {
m_Rigidbody.MovePosition (m_Transform.position+Vector3.left);
}
if (Input.GetKey (KeyCode.D)) {
m_Rigidbody.MovePosition (m_Transform.position+Vector3.right);
}
}
3. 自动移动(刚体)
// 给刚体一个速度= 刚体的方向 * 速度大小;
gameObject.GetComponent<Rigidbody>().velocity = transform.forward * speed;