Unity 3D飞机大战制作心得
1.摄像机的设置需要注意:选择摄像机的投影方式为Orthographic(正交投影)。
2.控制飞船的移动,其实就是控制一个3D的Vector3(x,y,z)的变换,首先需要得到
在x轴方向和z轴方向上面的移动变量,接着再给坐标赋值,实现坐标自身相应的移
动,变换。
接着还要给刚体相应的速度方向。具体使用:
GetComponent<Rigidbody>().velocity=movement;
3.为了提高游戏可玩性,加入方向上面的速度
GetComponent<Rigidbody>().velocity=movement*speed;
4.控制发射的时间间隔:
Time.time>nextFire
5.实例化做好的子弹并且发射出去:
Instantiate(shot,shotSpawn.position,shotSpawn.rotation);
6.管理子弹的生命周期:
为游戏区域添加触发器,并当电光子弹飞出区域时触发事件,在事件响应函数中
调用Destroy方法。
7.添加小行星随机旋转功能:
在脚本中添加一个表示小行星旋转系数的变量tumble,再重载Start函数,为刚体
组件的角速度赋上随机值。
例如:
GetComponent<Rigidbody>().angularVelocity=Random.insideUnitSphere*tumble;
PS:注意需要设置角阻力为0,否则该小行星速度会越来越慢。
8.添加小行星随机产生的逻辑:
注意需要让小行星在一定的范围之内产生。(x轴方向)
例如:
spawnPosition.x=Random.Range(-spawnValues.x,spawnValues.x);
spawnPosition.z=spawnValues.z;
spawnRotation=Quaternion.identity;
Instantiate(hazard,spawnPosition,spawnRotation);
9.使用Unity中的协程来让小行星的生成有时间间隔。
10.添加音频:
在发生碰撞的时候,调用音频来产生爆炸的声音
11.UI
添加计分UI的时候需要注意UI的位置。
12.重新加载场景
Application.LoadLevel(Application.loadedLevel);
是Unity中重新加载场景的常用方法。
Unity 3D飞机大战制作心得相关推荐
- Unity学习笔记:Unity 3D 飞机大战
Unity学习笔记:Unity 3D 飞机大战 1.打开unity软件后,首先新建Quad作为背景,导入飞机模型,并为其添加刚体 然后创建C#脚本,挂载到飞机上. 2.给飞机创建子弹,让子弹成为预制体 ...
- Unity 3d飞机游戏制作1
Unity 简单的飞机控制器脚本 前言 前几天突发奇想的想做一个3d飞机游戏,于是先自己写了一下简单的控制器,发现效果不是很好.之后浏览了一下网上的资源发现免费的不全,别的要钱.只好自己设计了.下面是 ...
- 用Three.js写h5小游戏-3d飞机大战
用Three.js写h5小游戏-飞机大战 博主的话 运行图片 目录路径![在这里插入图片描述](https://img-blog.csdnimg.cn/20190829103702978.jpg?x- ...
- 飞机大战学习心得(Dev-C++)
在c语言中,我们要用代码来做游戏就必须得去实现代码与图形界面接口的互联,也就是要通过按键的输入与输出来控制游戏的进行,所以以下几个头文件是必不可少的 stdio函数就不用我多说了. windows.h ...
- Unity 3D 进度条制作
我们都知道玩游戏时,第一步要加载游戏,加载游戏时我们可以做一个简单的进度条来显示游戏加载进度,应为有了进度条,游戏画面不会过于呆板. 那么我们就开始游戏的进度条制作吧! 方法一: 1,使用NGUI制作 ...
- Unity实现飞机大战简单易懂
废话不多说直接上游戏截图最下面附下载地址,注意是免费! 游戏资源下载点这个
- 【iVX 初级工程师培训教程 10篇文拿证】05 画布及飞机大战游戏制作
目录 [iVX 初级工程师培训教程 10篇文拿证]01 了解 iVX 完成新年贺卡 [iVX 初级工程师培训教程 10篇文拿证]02 数值绑定及自适应网站制作 [iVX 初级工程师培训教程 10篇文拿 ...
- unity学习3D坦克大战(六)
Unity 3D坦克大战案列学习(五) 实现相机视野的跟随 using UnityEngine; using System.Collections; /// <summary> /// 控 ...
- unity学习3D坦克大战(一)
Unity 3D坦克大战案列学习(一) 实现坦克移动和转向 using UnityEngine; using System.Collections; public class TankMovement ...
最新文章
- 修改ceph-disk源码,增加指定ceph.conf部署osd的功能
- python3 多进程共享变量实现方法
- eCos Mbox机制
- qhfl-2 ContentType组件
- Linux系统的基本安装
- 深度学习最常用的10个激活函数!
- Matlab二维曲线之plot函数
- word20161210
- 函数, lambda表达式
- 渗透之——Metasploit自定义FTP扫描模块
- 手持式频谱分析仪帮助实施毫米波无线信道调查
- Matlab如何提取fig文件中的数据
- UG NX 12 基准轴
- PS教程:磨砂颗粒质感字体海报设计
- 【对讲机的那点事】玩对讲机,你必须要了解的技术指标(下)
- web高级前端面试实战总结
- i9 10900K比9900K性能提升了多少?i9-10900K和i9-9900K区别对比评测 更多详情咨询世通兰陵王
- Qt 事件过滤器(秒懂)
- 解决ios以及mac yyyy-MM-dd HH:mm:ss格式不兼容
- 一周热图|比尔·盖茨在北京展示电子药盒;灯光艺术节点亮上海;陈飞宇、赖冠霖助力欧莱雅...
热门文章
- MCE公司:免疫治疗新课题——好心情,要保持!
- 计算机毕业设计系列基于SSM的养老保险管理系统
- HBase2.x_base
- C# BLE蓝牙开发之使用Windows.Devices.Bluetooth获取小米体重秤的体重
- 今天简单地把vw/vh总结一下
- 天池案例-贷款违约预测(lgb)
- linux基本功系列之uname实战
- [ipsec][crypto] 什么是AEAD加密算法中的AAD 及aad length
- 格式工厂找不到qlv文件无法添加qlv文件 怎么办 解决方法
- h5页面调用百度地图获取当前位置并在地图上标注出来