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
以上是关于Unity3D制作简易坦克旋转发射子弹的主要内容,如果未能解决你的问题,请参考以下文章
Fire Balls 05——坦克和子弹的制作以及炮台发射子弹
unity3D中制作了一个炮台,想让同一时间发射4枚子弹依次排在炮台前 怎么实现啊我用空的GameObject不行啊