为了账号安全,请及时绑定邮箱和手机立即绑定

unity 第二个小游戏飞机大战

标签:
Unity 3D

1.第一个小游戏做的3D推箱子和2D推箱子,因为事件太久远了 3月做的,只来就开始倒腾UI,毕设又横插一缸子就没怎么好好学了。接下来会模仿做几个小游戏.

2.飞机大战
飞机大战课程分成了几个部分:
建立工程-->角色对象-->相机和灯光-->添加背景-->角色移动-->创建射击-->设计功能-->边界-->创建激光-->爆炸-->游戏控制器-->生成波-->声音-->计算分数-->结束游戏-

第一二部分不再赘述,第三部分灯光:主灯光,补充光,轮廓光可以让游戏物体更为真实。
(1)第四部分-->角色移动,演示视频的方法竟然不能用!!自己写了个update--getkey--translate 角色移动这里使用了位置判断,设定四个边界值 另外构建一个类并序列化
图片描述

图片描述

这样子就实现了边界的限制。
实例里的移动可以用了!他是通过控制刚体的移动来控制物体的移动的,
刚体组件.velocity=new V3();
她使用比较妙的地方在与限制位置,我是通过如图方法控制位置的,她是通过限制刚体的为位置来控制飞机的。
rig.position=new V3(mathf.Clamp(rig.position.x,boundary.xmin,b.xmax),
0.0f
Mathf.Clamp(rig.position.y,boundary.zmin,bou.zmax)
);

(2) 目前位置,跟她学会了一种编程思路,例如在预制体生成中,ins(_prafab,position,rotation)先把函数写下来,然后用需要的东西去替换,这样子比较直观且不会杂乱,ok,让我们进行接下来的步骤,子弹创建成功后,同样的道理通过刚体的vol~什么什么函数来控制子弹的移动,把子弹设置成预制体,删除场景中的子弹。

//我胡汉三又回来了!!!!毕业啦 可以专心搞这个了= =,有点忧伤,学校没什么留恋的,但是学校的小姐姐们 呜呜呜 白白= =不扯了 继续
6.19号
(3)预制体的创建。instantiate();
由于子弹的rotation是90 0 0 飞机的rotation是0 0 0 所以ins(,transform.rotation)会默认飞机的角度,所以在生成克隆体之后需要重新clone.transform.rotate(xyz);

既然准备搞,刚才想了想,不能这么简单的把飞机大战1.0做出来就不管了,要尝试着以一个系统的视角把整个游戏做出来。本来准备重新写,结果没有找到删除手记的按钮,尴尬= = 那就重新写,每晚更新。下面是重新写的内容

---------------------------------------分割线------------------------------------------------------------

重新开始写:
确定整个游戏过程 1.登陆界面(和数据库交互确认)--》2.游戏开始退出界面--》如果开始则进入载入界面(两个图片切换 下边加载滚动条)--》游戏界面(左下角血量和分数)==》《游戏界面》===》游戏结束(自动更新分数)==》返回开始退出界面。 《游戏界面》--混沌黑白模式 飞机控制功能,发射子弹的功能,子弹间隔,敌方飞机,飞机炸毁集中功能,无限飞行等目前想到这么多,缺什么再加。

先做游戏界面,接着上边的做,子弹已经可以正常发射,但是过于密集,点一下发射好几颗,网上查找有一个invokerepeating("方法名",float 初始时间,float 时间间隔启动方法)
还有另外一种控制子弹发射间隔的方法,Time.time游戏时间来控制,通过定义下一发时间的间隔例如0.5f ,然后让nextFireTime=游戏时间+0.5。 if(Time.time>nextFireTme)就发射

子弹销毁问题:建一个盒子,放大到整个地图,然后勾选Trigger,然后
void OnTriggerExit(Collider other)
{
// Destroy everything that leaves the trigger
Destroy(other.gameObject);
}
谁碰谁死!!
还有另外一个方法:缓冲池---待研究
未完待续。。。

点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消