1.Unity生命周期
- 初始阶段
- Awake
- OnEnable
- Start
- 物理阶段
- FixedUpdate
- 输入阶段
- OnMouseEnter
- OnMouseExit
- OnMouseOver
- OnMouseDown
- OnMouseUp
- 逻辑阶段
- Update
- LateUpdate
- 场景渲染阶段
- OnBecameVisible
- OnBecameInvisible
- 结束阶段
- OnDisable
- OnDestroy
- OnApplicationQuit
2.Unity核心类
- Object
- GameObject(组合了Component和自身)
- Component
- Tranform
- Renderer
- MeshRenderer
- ParticleRenderer
- Behaviour
- Animation
- Camera
- Light
- Monobehaviour
- Collider
- Rigidbody
- MeshFilter
- Joint
- Material
- Mesh
- Texture
- Shader
GameObject
属性
activeInHierarchy(bool)--物体在Hierarchy面板的激活状态
activeSelf(bool)--物体在Inspector面板的激活状态
方法
SetActive(设置activeSelf)
Find--根据名称
FindGameObjectsWithTag--根据标签获取所有
FindWithTag--根据标签获取一个
FindObjectsOfType--根据类型获取所有
Destroy--销毁
Instantiate--克隆
Component
方法
GetComponents--获取自身所有组件
GetComponentsInChildren--获取后代所有组件
GetComponentsInParent--获取先辈所有组件
Transform
属性
position(Vector3)--世界坐标
localPosition(Vector3)--相对父亲
eulerAngles(Vector3)--欧拉角
rotation(Quaternion)--旋转
localScale(Vector3)--缩放(相对于父亲)
方法
Rotate--旋转
Translate--移动
LookAt--看向
SetParent--设置父亲
DetachChildren--解除父子关系(孩子调用)
Find--根据名称获取子物体变换组件
GetChild()--根据索引获取子物体变换组件
Animation
方法
Play--不管动画A是否播放完成,立即播放下一个动画B
PlayQueued--动画A播放完成,再播放动画B
CrossFade--动画A与动画B之间有过渡
3.Time
- Time
- 游戏开始到现在的时间
- deltaTime
- 距离上一次渲染所用的时间,常用于移动和旋转
- timeScale
- 时间流逝的快慢,影响FixedUpdate方法和deltaTime,不影响Update方法和unscaledDeltaTime
- 与时间相关的技巧
- 下次执行时间
- 累积时间间隔
- 间隔固定时间重复调用
4.Input
- 鼠标
- GetMouseButton
- GetMouseButtonDown
- GetMouseButtonUp
- GetAxis
- GetAxisRaw
- 键盘
- GetKey
- GetKeyDown
- GetKeyUp
5.三维数学
Degree--角度
Radius--弧度
Vector3--三维向量
magnitude--模长
normalized--单位向量
+ -- 加法
* -- 数乘
Dot--点乘
Cross--叉乘
MoveTowards--匀速
Lerp--变速(无限接近,但不相等)
Project--投影
ProjectOnPlane--投影到平面
Reflect--反射
Quternion--四元数
* -- 重载了乘号(两个四元数相加)
Rotate--效果与乘号相同
LookRotation--瞬间
RotateTowards--匀速
Lerp--变速(无限接近,但不相等)
Space
世界坐标
局部坐标
屏幕坐标
视口坐标
局部坐标转世界坐标
TransformPoint(受旋转、移动、缩放影响)
TransformDirection(受旋转影响)
TransformVector(受旋转、缩放影响)
世界坐标转局部坐标
InverseTansformPoint
InverseTransformDirection
InverseTransformVector
世界坐标转屏幕坐标
Camera.main.WorldToScreenPoint
屏幕坐标转世界坐标
Camera.main.ScreenToWorldPoint
世界坐标转视口坐标
Camera.main.WorldToViewportPoint
视口坐标转世界坐标
Camera.main.ViewportToWorldPoint
6.碰撞检测
- Collider--有碰撞效果
- 同时满足以下两个条件
- 两个物体都有碰撞体
- 运动的物体有刚体--受物理引擎检测
- 方法
- OnCollisionEnter
- OnCollisionStay
- OnCollisionExit
- 同时满足以下两个条件
- Trigger--没有碰撞效果
- 同时满足以下三个条件
- 两个物体都有碰撞体
- 其中之一有刚体
- 其中之一选择isTrigger
- 方法
- OnTriggerEnter
- OnTriggerStay
- OnTriggerExit
- 同时满足以下三个条件
- Raycast--射线检测,适用于高速运动的物体