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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39574690/article/details/89072181

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

坦克移动和转向:

 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

猜你喜欢

转载自blog.csdn.net/qq_39574690/article/details/89072181
今日推荐