Unity-衝突を理解する
Unityでの衝突は、実際のSprite自体から分離され、個別のコンポーネントとしてアタッチされ、独自に計算されます。この背後にある原因を学びましょう。
EverythingあなたのゲームにはGameObjectがあります。レベルを構成する個々のタイルでさえ、それ自体がGameObjectです。
すべてのコンポーネントをGameObjectと見なすと、 thousandsシーン内のGameObjectsの、何らかの方法で相互作用します。UnityがすべてのGameObjectに衝突を追加した場合、エンジンがそれらのすべての衝突を計算することは非現実的であると想像できます。
先に進み、プレイヤーキャラクターが衝突できる単純な「壁」を追加します。これを行うには、別のスプライトを作成し、Rectツールを使用してスケールアップします。また、を通して赤い色を与えますColor スプライトレンダラーコンポーネントのプロパティ。
![](https://post.nghiatu.com/assets/tutorial/unity/images/color_property.jpg)
さあ、 Add Componentインスペクターで、「BoxCollider2D」と入力します。表示される最初のコンポーネントをクリックすると、新しいコンポーネントが表示されます。
![](https://post.nghiatu.com/assets/tutorial/unity/images/add_component.jpg)
GameObjectの周囲に明るい緑色の線が表示されます。これはcollision boundary。それが実際の定義ですshape 衝突可能なオブジェクトの。
移動可能なGameObjectでも同じことを繰り返します。
もちろん、Unityでの衝突は単なるボックスに限定されません。それらはさまざまな形やサイズの範囲であり、必ずしもオブジェクトのパラメータのレプリカではありません。
![](https://post.nghiatu.com/assets/tutorial/unity/images/simply_boxes.jpg)
また、多角形をとることもできます。
![](https://post.nghiatu.com/assets/tutorial/unity/images/polygonal_shapes.jpg)
開発者やデザイナーが使用するのを見るのは珍しいことではありません approximate衝突境界の形状は、衝突型加速器を簡素化し、エンジンの不要な計算を回避します。コライダーを使ってさまざまな形やサイズを作成する方法をすぐに学びます。
衝突境界が設定されたので、再生を押して、実際の動作を確認します。
![](https://post.nghiatu.com/assets/tutorial/unity/images/approximate_shapes.jpg)
可動オブジェクトが正常に動作していないことに気付くでしょう。次の章では、オブジェクトの動作について説明します。