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で回しちゃいがちだけど無駄。