【Unity】回転を滑らかにする
2つの方法で、オブジェクトを滑らかに回転させてみます。 Quaternion.RotateTowards Quaternion.RotateTowardsメソッドの引数に、今の回転値と目的の回転値を渡します。また、目的の… 続きを読む »
2つの方法で、オブジェクトを滑らかに回転させてみます。 Quaternion.RotateTowards Quaternion.RotateTowardsメソッドの引数に、今の回転値と目的の回転値を渡します。また、目的の… 続きを読む »
Quaternion.ToAngleAxisメソッドを使うと、オブジェクトの回転の軸と角度を簡単に取得できます。 まず、角度と軸のための変数を、このメソッドの引数にoutキーワードを前置きして渡します。渡す前に変数を初期… 続きを読む »
オブジェクトを往復するように回転させてみました。 往復する値は三角関数で作ります。 このxに経過時間を渡します。xに値をかけると、回転速度を変えられます。 また、例えば全体に45をかけると、マイナス45度~45度の範囲を… 続きを読む »
角度指定して回転させるには、Transform.Rotateメソッドを使います。 例えば、ワールドのY軸に沿って45度回転させたいときは、下のように各軸の角度とスペースを渡します。 transform.Rotate(0,… 続きを読む »
Quaternion.identityでも回転なしの値を得られますが、defaultを使って0に初期化することもできます。 シーンには親子にした2つのCubeをおいて、親にスクリプトを付けました。 左ドラッグでCubeを… 続きを読む »
Quaternion.identityは、回転していないときの回転値が得られます。値は(0, 0, 0, 1)です。transform.rotationに代入すると回転が0になります。 Quaternion.identi… 続きを読む »
プレハブをインスタンス化したときの向きを簡単に設定してみました。 Instantiateメソッドの第三引数にプレハブの回転値を渡すと、プレハブのインスペクタのRotationの値が使われます。 using UnityEn… 続きを読む »
前の記事では、ナビメッシュエージェントをアニメーションで振り向かせようとすると、ルートのオブジェクトはそのままで、ボーンだけが回転してしまいました。 これはアニメーションのインポート設定でRoot Transform R… 続きを読む »
攻撃後の敵がプレイヤーの方へ振り向く動作が少し不自然なので、振り向くアニメーションを追加してみます。 まずBlenderで左右に振り向くアニメーションを作りました。 今回はとりあえず攻撃した後必ずターンするようにしました… 続きを読む »
画面にコンパスを表示してみます。どの方向を北にするか変えられるようにします。 まず、Imageオブジェクトを作ってコンパスの画像をアタッチします。ピボットを真ん中にして、RectTransformのZ軸のRotation… 続きを読む »
はしごに裏から乗ろうとするとキャラクターがはしごに引っかかってしまう問題を解決してみました。 キャラクターをはしごの前に移動させるときにキャラクターコントローラーのMoveメソッドを使うと、はしごのコライダーに当たって止… 続きを読む »
はしごにレイが当たっているときにマウスクリックではしごを登り始め、登っているときはプレイヤーの回転を制限します。また、ななめのハシゴに沿って登れるようにします。 // カメラ // はしごをのぼる else if (hi… 続きを読む »
FPSコントローラーではしごを登ってみます。 はしごを登る時は、はしごからの距離やキャラが回転できる範囲を常に同じにしたいと思ったので、今回はキャラクターコントローラーをはしごの前の指定の位置へワープさせ、指定の方向へ回… 続きを読む »
棒を登っているときに、歩いているときのようにカメラを周期的に動かしてみます。 カメラの回転はMouseLookクラスのLookRotation()で行うので、その中で体のY軸の回転と、カメラのX軸の回転にそれぞれ変数を足… 続きを読む »
棒を登っているときにカメラの水平な回転を制限します。 スタンダードアセットのMouseLookクラスにはカメラの縦回転を制限するClampRotationAroundXAxisメソッドが用意されているので、これを使ってみ… 続きを読む »
ハンドルを回して開閉するゲートに重力を加えます。前の記事では、マウスドラッグによってハンドルとゲートを両方動かしていましたが、今回はゲートだけを動かして、ゲートの速度を使ってハンドルを回転させてみました。 using S… 続きを読む »
ゲートの移動範囲がずれないように修正しました。 前の記事ではハンドルの回転だけを制限していましたが、ジョイントやコライダーの衝突を使ってゲートの動きを制限して、ゲートが制限まで達したときにハンドルを固定するようにします。… 続きを読む »
マウスカーソルをくるくると円形にドラッグして、バルブのオブジェクトを回してみます。 まずバルブにコライダーとリジッドボディ、ヒンジジョイントを付けます。リジッドボディのAngular Dragで抵抗を設定します。 ヒンジ… 続きを読む »
ドアを開けるときと閉まった時に音を付けてみます。 // 閉まっている if (state == 0) { // プレイヤーがドアを触った時 if (clicked && !previousClicked) { audio… 続きを読む »
オブジェクトを持つ時にカーソルがあった場所を掴んで移動させてみます。 // オブジェクトを持つ時 effort = item.transform.InverseTransformPoint(hit.point); // … 続きを読む »