功能类
Transform组件
函数Translate(方向 * 速度 * 前进or后退 * Time.deltaTime, 基准坐标系)
Space.Self:局部坐标系
Space.World:世界坐标系
Vector.forward:Vector3(0,0,1)。类似的还有:back,left,right,up,down,one,zero
Rigidbody 和 Collider组件
两个含有Collider的组件碰撞时,根据各自的rigidbody属性,会进行如下触发:
- | Static collider | Rigidbody collider | Kinematic Rigidbody collider | Static Trigger Collider | Rigidbody Trigger collider | Kinematic Rigidbody collider |
---|---|---|---|---|---|---|
Static collider | Collision | Trigger | Trigger | |||
Rigidbody collider | Collision | Collision | Collision | Trigger | Trigger | Trigger |
Kinematic Rigidbody collider | Collision | Trigger | Trigger | Trigger | ||
Static Trigger Collider | Trigger | Trigger | Trigger | Trigger | ||
Rigidbody Trigger collider | Trigger | Trigger | Trigger | Trigger | Trigger | Trigger |
Kinematic Rigidbody collider | Trigger | Trigger | Trigger | Trigger | Trigger | Trigger |
综上表所述:
1. Collision
- 两个非Trigger才会发生碰撞(也就是说子弹打中墙的话要么反弹要么触发Trigger后穿过)
- Static和Kinematic不互相碰撞
2. Trigger
- 除非二者都是Static,否则即可触发
语法类
- 组件依赖:[RequireComponent(typeof(xxx))]
对于拥有此require的script,在add这个script的时候会自动添加XXX这个component到gameObject。编辑器里也手动删不掉。不过运行时添加的话就不会自动添加了。 - 等待时间:StartCoroutine(GetEnumerator());
IEnumerator GetEnumerator(){
dosth…
yield return new WaitForSeconds(1.f);
dosth…
}
技巧类
每帧获取脚本的技巧
如果需要在 Update 中获得脚本,那么在Start()中 GetComponent 并存储,在 Update 中使用。
制作阴影的几种方法
- 光照
- projecter + ignore layer
- quad + render mode fade