Unity事例ノート

UNITY

バットをスイングする

クリックした方向にバットを傾け、スイングする仕組みを作ってみましょう。

クリックのタイミングで、360°回転してバットを振る動きです。

関連記事:
スプリングを使って棒を振るような動き
90°回転して叩くような動き
回転軸を変えてオブジェクトを回す
オブジェクトの先端をマウスカーソルに向ける

バットのオブジェクト

シリンダーを作成し、名前をBatObjectに変更。

サイズと回転、位置を変更します。

BatObjectにリジッドボディを追加し、UseGravityのチェックを外します。

空のオブジェクトを作成します。

名前をBatControlに変更し、回転を変更します。

BatObjectを、BatControlの中に入れ、親子関係をつくります。

BatSwing.csを作成し、BatControlに追加します。

BatSwing.csを記述します。

ターゲットに向けて傾きを変える

今回の例では、バットを傾けつつ、360°回転させなければなりません。

ここで、傾きをつけるためのオブジェクトを作成しましょう。

Sphereを作成し、名前をTiltPointに変更。

Sphere Colliderのチェックを外します。

ゲームビューではこのように見えています。

TiltMove.csを作成し、TiltPointに追加しましょう。

TiltMove.csを記述します。

Batのフィールドの中に、BatControlを入れます。

BatControlを選択しましょう。

ターゲットのフィールドに、TiltPointを入れます。

バットを傾けながら振る

ゲームプレイして、クリックしてみましょう。

クリックした座標と対称の位置に、TiltPointが表示されています。

これをターゲットにしてBatControlが傾き、360°回転してスイングしています。

最後に、TiltPointを透明にしましょう。

マテリアルを作成して、名前をToumeiに変更。

Rendering ModeをFadeに変更し、Aの値を0にします。

Toumeiマテリアルを、TiltPointに追加します。

もう一度、ゲームプレイしてみましょう。

クリックした位置に傾けながら、バットを振ります。

関連記事:
スプリングを使って棒を振るような動き
90°回転して叩くような動き
回転軸を変えてオブジェクトを回す
オブジェクトの先端をマウスカーソルに向ける