unityおぼえがき
自分のためのメモです。
■CharacterControllerはCharacterController.Moveを実行したときにCollisionに当たった方向としてCollisionFlags.CollidedXxxxxを返す。
- CollidedAbove 上
- CollidedSides 横
- CollidedBelow 下
- CollidedNone
collisionFlags = controller.Move(velocity * Time.deltaTime); if (collisionFlags == CollisionFlags.CollidedAbove) {}
ビットフラグなので&で取れば斜めも判定できる。
■一定時間のカウンターはTime.timeを利用したらいい。
if (Time.time > nextTime) 処理; nextTime = Time.time + second;
まぁそりゃそうだ。
■物体を回し続けたいときはtransform.Rotateを使う。
transform.Rotate(0,1,0);
tranceform.rotationだと途中で止まる。
■一定範囲で繰り返す数値はMathf.Repeatで取得するのが便利。
Mathf.Repeat(Time.time ,100)
こういうの調べるのがめんどくさくてカウンタをifで回しちゃいがちだけど無駄。