Unity-understanding-collisions
Unity-衝突を理解する
Unityの衝突は、実際のスプライト自体から分離され、個別のコンポーネントとしてアタッチされ、独自に計算されます。 この背後にある原因を学びましょう。
ゲームの*すべて*はGameObjectです。 レベルを構成する個々のタイルでさえ、それ自体がGameObjectです。
すべてのコンポーネントをGameObjectとして考えると、シーンには*何千*ものGameObjectが存在し、何らかの方法で相互作用する可能性があることがわかります。 UnityがすべてのGameObjectにコリジョンを追加した場合、エンジンがそれらのすべてのコリジョンのコリジョンを計算することは実用的ではないと想像できます。
プレーヤーキャラクターが衝突できる単純な「壁」を追加します。 これを行うには、別のスプライトを作成し、Rectツールを使用して拡大します。 また、Sprite Rendererコンポーネントの Color プロパティを介して赤色を与えます。
次に、インスペクターの[コンポーネントの追加]に移動し、「Box Collider 2D」と入力します。 表示される最初のコンポーネントをクリックすると、新しいコンポーネントが表示されます。
GameObjectの周囲に明るい緑の線が表示されます。 これが*衝突境界*です。 これは、衝突可能なオブジェクトの実際の*形状*を定義するものです。
移動可能なGameObjectでも同じことを繰り返します。
もちろん、Unityでの衝突は単なるボックスに限定されません。 それらはさまざまな形とサイズに及ぶことができ、必ずしもオブジェクトのパラメーターのレプリカではありません。
また、多角形の形状をとることもできます。
開発者と設計者が衝突境界で*近似*形状を使用して、コライダーを単純化し、エンジンの不要な計算を回避することは珍しくありません。 コライダーでさまざまな形状やサイズを作成する方法をすぐに学習します。
コリジョン境界が設定されたので、プレイを押して、実際に動作する様子を確認してください。
可動オブジェクトが正常に動作していないことに気付くでしょう。 オブジェクトの動作については、後続の章で説明します。