Unity3D制作简易坦克旋转发射子弹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D制作简易坦克旋转发射子弹相关的知识,希望对你有一定的参考价值。

参考技术A 项目:制作一个坦克,让它在旋转的同时发射子弹,并且让它在两秒之后销毁

问题:1.子弹怎么连续产生?

答:拖成预设体

2.子弹怎么停留两秒后销毁

答:用Destroy();放在Start函数中,每次产生新子弹之前把之前销毁之前的子弹

解析:

1.创建一个简易的坦克,里面包含以下对象(还有一个子弹模型,拖成预设体)

GameObject这个空物体是发射子弹的地方,如图示

注意:要想子弹发射的方向跟炮筒Cylinder的方向一致,必须将子弹和GameObject的rotation都设成跟炮筒Cylinder的一样

2.创建一个FlyScript脚本挂在子弹身上,实现子弹的发射和销毁

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassFlyScript:MonoBehaviour



voidStart()



//每产生一个新子弹之前,进行一次销毁的操作,每2秒销毁一个子弹

Destroy(gameObject,2f);



voidUpdate()



//发射子弹,transform.up是自身方向的y轴,加上Space.World后就是相对于世界坐标的方向

transform.Translate(transform.up,Space.World);





3.创建一个脚本挂在GameObject(即发射口)上实现子弹连续不断的产生

将子弹bullets预设体拖动这里

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassTankScript:MonoBehaviour



//子弹

publicGameObjectbullets;

//计时器

privatefloattimer;

voidUpdate()

//每一秒产生一颗子弹

timer+=Time.deltaTime;

if(timer>=1f)

timer=0;

Instantiate(bullets,transform.position,transform.rotation);







4.创建一个脚本挂在Tank身上实现坦克的匀速旋转

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassRotateScript:MonoBehaviour



voidUpdate()



//使得坦克匀速旋转

transform.Rotate(0,5*Time.deltaTime,0);



第18章 坦克大战2

韩顺平_循序渐进学Java零基础_第18章 坦克大战2(P600 - P610)

第18章 坦克大战2

600. 坦克发子弹思路

601. 我方发射子弹1

602. 我方发射子弹2

603. 敌方发射子弹

604. 敌方坦克消失

605. 坦克爆炸

606. 敌方坦克自由移动

607. 控制坦克移动范围

608. 坦克发多颗子弹

609. 敌方移动发射

610. 我方被击中爆炸

以上是关于Unity3D制作简易坦克旋转发射子弹的主要内容,如果未能解决你的问题,请参考以下文章

Fire Balls 05——坦克和子弹的制作以及炮台发射子弹

unity3D中制作了一个炮台,想让同一时间发射4枚子弹依次排在炮台前 怎么实现啊我用空的GameObject不行啊

unity3d C#写发射子弹的程序怎么写

Unity2D如何制作一个炮台追踪主角发射子弹

[Unity学习笔记:FPS游戏制作] 发射子弹————(2021.6.20学习笔记)

太空大战游戏开发实例