Unity双人操作模式以及对物体的移动控制

碰巧学到siki学院的坦克大战的项目,就对里面如何操作坦克以及双人操作模式进行总结

下图为最终实现的效果,我们只对物体移动和如何使用wasd控制以及↑↓←→控制进行讲解

1.添加刚体

刚体这个组件可以说是控制物体运动必备的组件了。
如图给物体添加上

2.添加控制移动脚本

public class TankMove : MonoBehaviour {
    public float speed = 5;
    public float angularspeed = 10;
    public int playerid = 1;//玩家编号
    private Rigidbody rgd;
    
	void Start () {
        rgd = GetComponent<Rigidbody>();
	}

    private void FixedUpdate()
    {
        float v = Input.GetAxis("VerticalPlayer"+playerid);
        rgd.velocity = transform.forward * v*speed;
        float h = Input.GetAxis("HorizontalPlayer" + playerid);
        rgd.angularVelocity = transform.up * h * angularspeed;
    }
}

3.设置控制按键

看完上述脚本,肯定会有疑问,Input.GetAxis()里面的字符串平常见到的都是"Vertical"和"Horizontal",这就是我们需要用到自定义的地方.如下图找到设置的位置


点开后是下图所示

我们这边就可以对"Horizontal"和"Vertical"按键进行大展身手了,来自定义我们想要的按键。

  • 我们首先右键Horizontal,然后选择Duplicate Array Element 这样我们就可以复制一个新的出来而不影响原来的。又因为我们有两个坦克,所以就创建两个出来,然后里面的参数如下图设置就可以分别实现ad←→

    关键点就是把两边按键不要设置相同,各有自己的特点,这样我们就可以左右啦
    那么上下也是一样的,把Vertical和上面一样做一遍

这样我们就可以进行双人运动啦

特别注意一下 之前代码中的angularVelocity是角速度控制物体转动的。当我们按下左右的时候,根据定义好的angularspeed沿着物体的Y轴(transform.up)进行旋转

还有Rigidbody组件中 要对物体的位置以及旋转轴进行锁定,第一次试的时候如果不设置的话 会出现坦克升天…(沿着Y轴运动了),旋转的时候我们只需要用到Y轴,所以把X Z轴锁定就行了

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值