注释:Ctrl+k Ctrl+c 取消:Ctrl+k Ctrl+u
-
三个基本函数:
Awake:创建变量,生命周期只执行一次
Start:给变量赋值,在对象被第一次enable之后,在Update之前调用的
Update:每帧之前执行一次
-
transform.rotation和Rotate有个区别:
Rotate()方法是:旋转多少度。在原有的基础上累加,即旋转了多少角度。又旋转了多少角度,是在原有的基础上在旋转
rotation属性是:旋转到某个角度,就是是在update中每帧都执行。但每次旋转到的角度都是5,所以是旋转到5度。
总之:你只想让他旋转到多少, 用rotation; 假如想让他一直转,可以用Rotate
rotation直接改变了数值, 以达到旋转效果
Rotate应用一个的旋转角度每秒1度慢慢的旋转物体
当然:rotation()还可以通过插值旋转
-
发生碰撞和触发的条件:
碰撞条件:双方都有碰撞体;运动的一方必须有刚体(非kinematic);都不能勾选trigger。(关于为什么发生碰撞时运动的一方必须要有刚体,因为带刚体但是没有运动,unity基于物理性能的考虑会让其睡眠(sleep),而睡眠的刚体不参与碰撞检测)
触发条件:双方都有碰撞体;至少有一方有刚体(包含kinematic);至少有一方勾选trigger。
碰撞方法OnCollisionEnter(Collision other)或者OnCollisionStay(Collision other)或者OnCollisionExit(Collision other);
触发方法OnTriggerEnter(Collider other)或者OnTriggerStay(Collider other)或者OnTriggerExit(Collider other);
-
GetAxis 是个方法,需要传参数,参数为string类型,参数如下:
一:触屏类
1.Mouse X 鼠标沿着屏幕X移动时触发
2.Mouse Y 鼠标沿着屏幕Y移动时触发
3.Mouse ScrollWheel 当鼠标滚动轮滚动时触发
二:键盘操作类
1.Vertical 对应键盘上面的上下箭头,当按下上或下箭头时触发
2.Horizontal 对应键盘上面的左右箭头,当按下左或右箭头时触发
transform.Translate()函数中,前一个变量是物体的移动速度,这里的速度是一个矢量,既包含大小写包含方向,后一个变量是相对坐标系,这里的相对坐标系有两个值,一个是世界坐标,一个是自身坐标,如果第一个坐标不填写的话,默认为自身坐标系。
gameobject.SetActive()用于激活或禁用gameobject
-
坐标系
3D笛卡尔坐标系:右手坐标系
OpenGL:右手坐标系
Direct3D:左手坐标系
Unity3D:左手坐标系(世界坐标系),即+x, +y, +z分别指向右方,上方和前方。
transform.Position 世界坐标系
transform.localPosition 本地坐标,可以获得物体在父物体的局部坐标系中的位置点。
tranform.forward 世界坐标系的X轴是物体坐标系的Z轴。(旋转90°)
-
关于UGUI:
Image:
Source Image:导入的图片必须是精灵图片(即Sprite(2D and UI))
Color: float类型的为Color 和 0-255类型的是Color32
Raycast Target:是否响应点击事件
图集里面的东西可以进行九宫格分割!!先选择Sprite Mod,再点击Sprite Editor进行分割
Image Type:Simple 简单的图片
Sliced 使用九宫格切割过的图片,Filled Center表示是否要填充中间区域
Tiled 图片平铺
Filed 填充图片,Fill Method填充方式,Fill Origin确定填充方式起点
给父物体添加组件Mask/Rect Mask 2D可以让子物体按照父物体的大小进行遮罩。
区别:Mask影响性能需要避免使用,可以放在3D物体上
Rect Mask 2D,只可以放在2D物体上
RawImage:
UV rect用于确定帧动画坐标
Text:
Line Spacing:行间距
Rich Text:富文本开启时,文字框的字可以根据HTML5的编码规则进行加粗,斜体,换颜色等。E.g: New TextNew <b>TextNew</b> <i>TextNew </i>TextNew
Horizontal/Vertical Overfloat:单行显示还是文本框内转行,可超出边框
Best Fit:限定字缩在该边框内
!!Selectable:
Interactable:可以交互,必须勾选
Color Tint:点击变换颜色
Sprite Swap:点击变换图片
Toggle:
所有的Toggle属于一个Group(需要添加一个Toggle Group组件)下面,且所有的Toggle的Group需要指定上一级的组名
-
Unity中Update,FixedUpdate,LateUpdate的区别
void FixedUpdate () 固定更新
void Update () 更新
void LateUpdate() 晚于更新
FixedUpdate () 和 Update ()
同:当MonoBehaviour启用时,其在每一帧被调用。都是用来更新的
异:Update()每一帧的时间不固定,即第一帧与第二帧的时间t1和第三帧与第四帧的时间t2不一定相同。FixedUpdate()每帧与每帧之间相差的时间是固定的.
Update受当前渲染的物体影响,这与当前场景中正在被渲染的物体有关(比如人物的面数,个数等),有时快有时慢,帧率会变化,Update被调用的时间间隔就会发生变化。但是FixedUpdate则不受帧率的变化影响,它是以固定的时间间隔来被调用。
所以一些物理属性的更新操作应该放在FxiedUpdate中操作,比如Force,Collider,Rigidbody等。外设的操作也是,比如说键盘或者鼠标的输入输出Input,因为这样GameObject的物理表现的更平滑,更接近现实。
FixedUpdate的时间间隔可以在项目设置中更改,Edit->Project Setting->time 找到Fixed timestep。就可以修改了
-
关于Final IK插件 脚本源文件解读
1、[System.Serializable]:序列化
2、enum是unity中一种枚举类型,全部列举以防止在后续的编码过程中出现错误