【Unity】3D坦克大战入门级别开发

坦克大战核心功能是坦克移动和转向、发射子弹等简单的逻辑。

坦克移动和转向:

 void FixedUpdate()
    {
        //v 垂直方向就是世界z轴
        float v = Input.GetAxis("VerticalPlayer"+number);
        //依靠垂直方向前进和后退
        rigidbody.velocity = transform.forward  *v* speed;
        //h 水平方向就是世界x轴
        float h = Input.GetAxis("HorizontalPlayer"+number);
        //依靠h水平方向转动角度
        rigidbody.angularVelocity = transform.up  * h * angularSpeed;
        //如果按下了前后或者左右键都会发出移动声音
        if (Mathf.Abs(h) > 0.1 || Mathf.Abs(v) > 0.1)
        {
            audio.clip = drivingAudio;
            //若当前没有进行播放移动声音,若没这一步操作,就是很混乱的声音了
            if(audio.isPlaying==false)
            audio.Play();
        }
        else//否则发出引擎声音
        {
            audio.clip = idleAudio;
            //若当前没有进行播放移动声音
            if (audio.isPlaying == false)
            audio.Play();
        }
    }

坦克攻击(发射子弹):

	// Update is called once per frame
	void Update () {
        if (Input.GetKeyDown(fireKey))
        {
            GameObject go = GameObject.Instantiate(shellPrefabs, firePosition.position, firePosition.rotation) as GameObject;
            go.GetComponent<Rigidbody>().velocity = go.transform.forward * shotSpeed;
        }
	}

使用三个摄像机分别提供上帝视角、A玩家第一人称视角、B玩家第一人称视角,具体如何实现这个可以如下:

https://blog.csdn.net/qq_39574690/article/details/78506692

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值