我们知道在Unity你直接调用Input.GetAxis(“Vertical”)函数用来判断玩家是否移动是可以的。但是存在一个问题,就是我们如果游戏中同时存在两个玩家,则会出现问题。
解决办法:对方向进行拆分,例如:W S为玩家一的移动键,上下方向键为玩家二的移动按键。
public class TankMovement : MonoBehaviour {
//设置一个移动速度
public int speed = 5;
private Rigidbody rigidbody;
//设置一个角速度
private int angularSpeed = 10;
//设置一个编号即可
public int select = 1;
// Use this for initialization
void Start () {
rigidbody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
}
//固定帧调用,一般使用场景为物理移动
void FixedUpdate()
{
float h = Input.GetAxis("Player" + select + "Horizontal");
//垂直方向W S 为前后移动
float v = Input.GetAxis("Player" + select + "Vertical");
//刚体自身设置一个移动速度,transform.forward代表自身的前方向移动,
rigidbody.velocity = transform.forward * v * speed;
// 刚体自身设置一个角速度
rigidbody.angularVelocity = transform.up * h * angularSpeed;
}
}
在Unity中我们发现出现了一个select选择框,我们只需要将其设为不同,即可实现对不同游戏对象的移动操作。
因篇幅问题不能全部显示,请点此查看更多更全内容