游戏的要素
一 逻辑
1. 游戏逻辑: 游戏的玩法 用户的输入
2. AI:NPC互动 自动寻路 追逐敌人
3.物理运算:碰撞检测 重力 惯性
二 显示
1. 动画系统:控制动画的播放
2. 底层渲染:告诉硬件怎么完成显示
三 声音
相对独立 由单独的团队完成
逻辑决定显示的内容
游戏团队中的角色
1. 策划:设计游戏的玩法
2. 美术:制作游戏需要的美术资源
3. 程序员:编写游戏逻辑,整合一切
游戏引擎的作用
1. 减少我们的工作
2. 减少重复开发
3. 降低游戏开发的门槛
Unity 具有的模块
AI 渲染
物理运算 声音
动画系统 资源管理
跨平台 系统框架
脚本基础
- Untiy里可以使用C#、JavaScript(UnityScript 是Unity仿JavaScript写的语言)在版本2018初以后不再支持了,主要是支持C#语言()
- 在Unity凡是能挂在GameObject上的都是Component(组件)
- Script也可以作为一个Component
- Script要想挂在GameObject上就必须继承MonoBehaviour
注:Unity3d一般是用来开发游戏的,而在桌面游戏用户中绝大部分使用的是windows操作系统。在windows操作系统中使用桌面应用,C#是绝对的王者。作为客户端应用程序,javascript是单线程的,C#是多线程的。
Unity如何通过脚本来驱动游戏
1. Instantiate() 创建GameObject
2. 通过Awake()和Start()来做初始化
3. Update,LateUpdate和FixedUpdate更新逻辑
4. 用OnGUI绘制UI
5. OnCollisonEnter等进行物理计算
6. OnPreCall等来控制渲染
如何更新逻辑
1.场景启动时调用所有脚本的Awake()
2.调用所有脚本的Start()
3.调用Update 每一帧
4.调用LateUpdate 每一帧
5.调用FixedUpdate 跟时间相关 可以定义每60帧执行的方法
对象销毁
1. 调用Desotry销毁GameObject
2. 销毁对象时调用OnDesotry
脚本之间的通信
1.通过GetComponment来找到其他脚本 同一物体上的其他脚本
2.通过GameObject.Find来找到其他物体