AnyPortrait > マニュアル > 風の効果を実装

風の効果を実装


1.3.2



簡単なスクリプトで物理モディファイヤやジグルボーンが適用されたキャラクターに物理的な効果を加えることができます。
このページでは、キャラクターが特定の領域に入ると、風が吹く効果を実装する方法を説明します。
このページの説明に基づいて、皆さんのプロジェクトでは、より多様な方法で物理的効果を作成しよう!


下のページを一緒に参照してくださいに役立ちます。
- 物理効果
- Getting Started 1.9. 物理効果の追加
- 物理モディファイヤ
- ジグルボーン




上記のようにシーンを設定します。
キャラクターと二つの領域で構成されています。
(1) 二つの領域の名前は、「WindArea_Left」と「WindArea_Up」です。
キャラクターがこの領域に入ると、それぞれ左と上に風が吹くことです。
(2) 領域のいずれかを選択します。
(3)Box Collider 2D」コンポーネントを追加します。
(4)Is Trigger」属性を有効にします。




他の領域も同様に、コンポーネントを追加して設定します。




物理的な効果は、「物理モディファイア」や「ジグルボーン」に適用されます。
「物理モディファイヤ」を追加して、物理材質をメッシュに適用します。




「ジグルボーン」を利用して、物理的な効果を持つように作成することもできます。


下のスクリプトを作成して、キャラクターが「Trigger」の中に入ると、風が適用されるように実装してみましょう。



- 「OnTriggerEnter2D」、「OnTriggerExit2D」イベントは「Is Trigger」が設定されたColliderに文字が入ったり出る呼び出されます。この時、Colliderの名前を利用して、「Left」領域なのか「Up」領域なのか区分しました。
- 「AddForce_Direction」関数は、直線方向の力を加える関数です。この関数は、「SetPower」と「EmitLoop」または「EmitOnce」関数と一緒に呼び出す必要があり動作します。
- 「AddForce_Direction」で生成される「apForceUnit」を利用して、「左の風」と「上の風」を区分し、「RemoveForce」関数呼び出し時に利用しました。




(1) キャラクターを選択します。
(2) キャラクターの上に作成したスクリプトを追加します。
キャラクターが「Box Collider2D」の中に入ることを認識するColliderと「Rigidbody 2D」コンポーネントが必要です。
(3) ここでキャラクターの形に合わせて、「Capsule Collider 2D」を追加し、サイズと位置を設定します。
(4)Rigidbody 2D」を追加します。
この状態では、物理エンジンによってキャラクターが下に落ちることです。
Rigidbody2D」のプロパティの、「Constraint > Freeze Position > Y」をチェックして落ちるのを防ぐことができます。




ゲームを実行してみましょう。
領域外にある場合キャラクターに風が吹かない。




キャラクターが最初の領域に入ると、風が左に吹くことを見ることができます。
OnTriggerEnter2D」イベントが発生して、「AddForce_Direction」関数が呼び出されたためです。




キャラクターが第2の領域に入ると、風が上向きに吹くことを見ることができます。




またキャラクターが領域外に出ると、すべての力が消えます。
OnTriggerExit2D」イベントが発生して、「RemoveForce」関数が呼び出されたためです。