2.Unity相关知识
2.1 Unity介绍
Unity成为一款可以轻松创建游戏和三维互动的开发工具,是一个专业跨平台游戏引擎
Unity操作快捷键
Ctrl |
|
N |
New Scene 新建场景 |
Ctrl |
|
O |
Open Scene 打开场景 |
Ctrl |
|
S |
Save Scene 保存 |
Ctrl |
Shift |
S |
Save Scene as 保存场景为 |
Ctrl |
Shift |
B |
Build Settings... 编译设置... |
Ctrl |
|
B |
Build and run 编译并运行 |
Edit 编辑 |
|||
Ctrl |
|
Z |
Undo 撤消 |
Ctrl |
|
Y |
Redo 重做 |
Ctrl |
|
X |
Cut 剪切 |
Ctrl |
|
C |
Copy 拷贝 |
Ctrl |
|
V |
Paste 粘贴 |
Ctrl |
|
D |
Duplicate 复制 |
Shift |
|
Del |
Delete 删除 |
|
|
F |
Frame selected 选择的帧 |
Ctrl |
|
F |
Find 查找 |
Ctrl |
|
A |
Select All 全选 |
Ctrl |
|
P |
Play 播放 |
Ctrl |
Shift |
P |
Pause 暂停 |
Ctrl |
Alt |
P |
Step 停止 |
2.2 脚本基础开发
Unity面向组件开发,游戏物体想要实现什么样的功能,只需要添加相对应的组件就可以了,此时会在属性面板上显示出来。可以像添加组件一样把脚本添加到游戏物体上。
脚本生命周期:
1.Awake
最早执行,在GameObejct对象的数据和状态的初始化后执行,只会触发一次。
tips:GameObject实例化到场景中后在激活的状态下才会初始化,如果GameObject从来未激活,它的脚本上的Awake永远不会被调用。
即时触发,GameObject第一次active的时候调用。
2.Start
在脚本第一次调用Update之前调用,只会触发一次。
3.OnEnable
在脚本状态由disabled变为enabled状态是触发一次,Unity内部可能将脚本初始置为diabled,所以如果我们实例化一个激活的GameObject,并且在挂上一个enabled了的脚本后把它加入场景会调用一次OnEnable,并且早于Start。
4.OnDisable
在脚本由enabled状态变为disabled状态的时候会调用。
tips:OnEnable和OnDisable事件的触发是即时的,并且这两个事件是综合考虑GameObject的active状态和脚本的enabled状态的。所以不要在OnEnable里面把脚本设置为disabled同时在OnDisable中把脚本设置为enabled,会导致死循环!!!
5.Update
在每一帧调用,用于实现各种行为逻辑
6.LateUpdate
在每一帧调用,但是是在Update之后触发。常用的一种情况是相机跟随移动角色:角色移动逻辑在Update里面实现,相机跟随逻辑在LateUpdate里面实现。
7.OnDestroy
在组件被销毁时调用,只有GameObject被激活过才会触发。
脚本常用类:
1.Component类
2.GameObject类
3.Transform类
4. Vector3类
1. Quaternion
Identity:该四元素无旋转。
LookRotation:创建一个旋转,沿着forward(Z轴)并且头部沿着Y轴的约束注释
2. Time
3. Mathf
预设体
组件的集合体 , 预制物体可以实例化成游戏对象.
创建预设体的作用: 可以重复的创建具有相同结构的游戏对象。
在脚本中,使用instantiate函数来进行预设体的实例化
Object tmpObj = Instantiate(prefabs, pos , Quaternion.identity);
2.3 物理引擎
1.键盘输入常用方法
GetKey:按键按下期间返回true
GetKeyDown:按键按下的第一帧返回true
GetKeyUp:按键松开的第一帧返回True
Input类简介
虚拟按键
具体代码和实现方式如下:
Float hor = Input.GetAxis(“Horizontal”);
鼠标事件
常用的鼠标属性和方法
碰撞器组件:
当我们在场景当中创建出来一个游戏物体的方式后,引擎会自动为这个游戏物体添加碰撞器组件,其主要功能是进行碰撞检测。
发生碰撞的条件:1、相对运动,2、两个碰撞器,2、一个刚体
刚体组件
刚体组件能受到你的作用,比如:重力,反作用力,阻力,外加力,爆炸力等等
以下是刚体组件的一些属性和常用方法
触发器:
发生触发的条件:1、两个碰撞器 2、一个触发器 3、一个刚体
射线
Unity提供了涉嫌集资:通过虚拟射线检测所碰撞到的物体
Ray ray = new Ray();
Bool Raycast(Ray ray,out RaycastHit hitInfo);
Rayray=Camera.main.ScreenPointToRay(Input.mousePostion);
从主摄像机到鼠标点击位置创建一条射线。
2.4 Unity2D和精灵
精灵:
图片精灵的意思(Flash引擎里也有图片精灵对象),将导入的图片类型设置为Sprite即可拖到场景面板里,带有随屏幕大小自动缩放功能,还可以加Collider进行射线检测,简单实用。图片精灵是用来绘制图集的控件,精灵可以在一张大图中去截取一部分(大图就是整体图像集合(Atlas),而截取的小图就是一个精灵),然后给精灵命名,使用时通过精灵的名称就能直接绘制,并且精灵还可以用来制作动画。
图层排序:2D游戏当中的图片之键没有深度关系,都处于同一个平面上,但在实际游戏当中需要为他们排序,按视觉上的空间先后顺序显示。
2D物理组件与3D物理引擎在功能上基本相似,当我们给精灵添加了个刚体之后,他就会受到2D物理引擎的控制。
2D碰撞和触发回调方法:
2D开发常用类:
创建序列帧动画,按Ctrl+F6打开Animation的编辑窗口,点击后可以添加属性,如果要更改动画中某一帧的位置、旋转和缩放,只需要点击+号即可,在Animation编辑窗口,在关键帧点击天津爱时间,此时可以选择脚本中的方法,但是该方法必须是public ,可访问状态
2.6 UGUI
UGUI的特点:灵活,快速和可视化,对于开发者而言,效率高,易于使用和扩展以及对Unity的兼容性高。
UGUI与GUI插件NGUI相比:
1. 由NGUI创始人参与开发
2. 与Unity结合更加密切
3. 自适应系统更加完善
4. 更方便的深度处理
5. 省去Altas,直接使用Sprite Pa
UGUI画布:是所有UI控件的根类,所有的UI控件补习都在画布上面。EventSystem是事件系统,负责监听用户的输入,创建UI控件是,当层级试图当中没有CANVAS和EventSystem,系统会帮我们自动创建。
画布的三种渲染模式模式:
1、Screen Space-Overlay:不需要UI摄像机,画布会一直出现在摄像机最前面
2、Screen Space-Camera:需要一个UICamera,支持U前方显示3D模型和粒子系统
3、World Space:UI控件成为3D场景中的一部分
LayoutGroup组件:对子控件进行布局,上面只能有一种布局组件,布局组件有以下三种:
1.Horizontal Layout Group (水平布局)
2.Ver tical Layout Group(垂直布局)
3.Grid Layout Group(网格布局)
1. UGUI画布也称为Canvas,UGUI是所有控件的父类
2. 所有UGUI控件都必须绘制在画布上面
3. 当创建UGUI控件工程当中没有Canvas的时候会自动创建
Canvas与EventSystem
Text控件是用来显示文本的文本控件