Unity基础知识汇总
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 编译设置...
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.usePostion);
从主摄像机到⿏标点击位置创建⼀条射线。
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控件是⽤来显⽰⽂本的⽂本控件
Text的属性可以在Inspector当中通过Text组件进⾏设置,也可以在代码当中进⾏动态设置。给Canvas挂载脚本UGUISetting
Image控件主要是⽤来显⽰图⽚,显⽰图⽚的格式是Sprite
当我们给Image选择⼀张贴图之后会出现ImageType选项,如下图所⽰。ImageType总共有四种选项:simple显⽰单个会拉伸;Tilled平铺显⽰,图⽚按照原始显⽰;Sliced按照九宫格显⽰,拉伸区域只会在九宫格中间;Filled填充显⽰,可以根据不同的填充⽅式模拟技能冷却的
按钮添加监听事件:
Button btn;
void Star t () {
//获取到按钮
btn = GameObject.Find(“Button”).GetComponent<Button> ();
canvas动画//给按钮添加监听事件
}
void BtnClick(){//按钮响应事件
Debug.Log (“Click .AddListener ()”);
}
Slider是滑动条,Slider的属性如图所⽰:
Slider slider ;
void Star t () {
//获取到Slider组件
slider = GameObject.Find(“Slider ”).GetComponent<Slider> ();
//添加监听事件
}
// 事件响应
public voidSliderValueChange (float value){
Debug.Log (“value = “+value);
}
InputField创建出来如下图所⽰,InputField层级视图当中包含Placeholder与Text,Placeholder⽤于显
⽰占位符,即输⼊框没有输⼊⽂本时显⽰的⽂本,例如下图的“Enter text”,Text⽤于显⽰输⼊的内容。
RectTransform的作⽤⽤来计算UI的位置和⼤⼩,RectTransform继承于Transform,具有Transform的所有特诊,通过RectTransform能够实现基本的布局和层级控制。
如图所⽰,箭头所指即为锚点,锚点表⽰的是相对于⽗级矩形的⼦矩形区域。如图所⽰锚点为四边形,锚点有多种摆放⽅式,可以为矩形,点状或是为线状。锚点移动范围仅限于⽗级视图当中。
按下T键选中某⼀个UI控件即可看到UI控件的中⼼点,中⼼点也叫中⼼轴,当⿏标拖动UI控件进⾏旋转的时候会围绕中⼼点旋转。中⼼点为矩形的⼀部分。0对应左下⾓,1对应右上⾓
UGUI回调⽅法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论