Unity の基本概念
👾 Unity Documentation
https://docs.unity3d.com/ja/current/Manual/index.html
🚔 衝突
Collider
コライダー(Collider) は、GameObjectに物理的な接触や接触判定を発生させるコンポーネント。
【原義】
Collider(高エネルギーに加速したニつの粒子線を正面衝突させ反応を研究する加速器。衝突型加速器)
Collision(衝突)
Rigidbody2D
GameObjectを物理法則に従って動かすようにするコンポーネント。 https://docs.unity3d.com/Manual/class-Rigidbody2D.html
GetComponent
「GetComponent」は、Unityにおいて特定のコンポーネントをオブジェクトから取得するためのメソッドです。このメソッドを使うことで、オブジェクトにアタッチされた特定のコンポーネントのインスタンスを取得することができます。
Vector3
3D ベクトルと位置の表現。この構造体は Unity 全体の 3D での位置や方向のために使用される。一般的なベクトル演算を行うための関数が含まれている。
以下は、カメラオブジェクトにシリアライズ化したGameObjectを紐づけて、GameObjectの位置をuploadの度にカメラの位置に代入しているスクリプトの例。
public class FollowCamera : MonoBehaviour { [SerializeField] GameObject thingToFollow; // Inspectorから操作可能にするためにシリアライズ化。Inspector上でカメラとCrazyMcDriveを紐付ける void LateUpdate() { transform.position = thingToFollow.transform.position + new Vector3(0, 0, -10); // カメラの位置のVector3を作る } }
OnCollisionEnter2D
Colliderの「Is Trigger」がオフの時、何かが接触したら呼ばれるメソッド
void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == "Enemy") { collision.gameObject.SendMessage("ApplyDamage", 10); } }
OnTriggerEnter2D
何かがColliderに接触した時に呼ばれるメソッド
other
衝突した相手(=自分自身以外)のオブジェクトを参照するために使用するプロパティ。または、オブジェクト同士の関係性を表現するために使われる言葉。 以下の
void OnTriggerEnter2D(Collider2D other) { … }
では、以下のような解釈が行われている。 「何かが(自分にアタッチしている)コライダーに接触した時に処理を行います。値は何も返しません。 『何か』はcollider 2D の other(衝突した相手のオブジェクト)です。 other(衝突した相手のオブジェクト)のtagが”Package”であることがtrueなら、 other(衝突した相手のオブジェクト)のgameObject(=要素)をdestoryDelay時間でDestroyします」public class Delivery : MonoBehaviour { // OnTtiggerEnter2D void OnTriggerEnter2D(Collider2D other) { //Debug.Log("What's That?"); if(other.tag == "Package") { Debug.Log("Package picked up"); hasPackage = true; Destroy(other.gameObject, destoryDelay); } if(other.tag == "Customer" && hasPackage) { Debug.Log("Package Delivered"); hasPackage = false; } } }
Destory(GameObject型のオブジェクト, float型の時間)
オブジェクトを削除するために使用される(Unity API)メソッド。このオブジェクトを呼び出すことによって、指定したオブジェクトを削除することができる。
🧾 スクリプト
[SerializeField]
[SerializeField] は、そのフィールドがシリアライズ可能であることを表す属性。 ここで重要な理解は、シリアライズ可能なフィールドはInspectorから操作が可能になる、という点。
🐶 基本
シーン(Scene)
ゲームの画面1つを表します。ゲームではメインのゲーム画面の他に、タイトル画面やスコア画面など、いろいろな画面を使います。それぞれの画面はこのシーンという単位で保存されます。
ゲームオブジェクト(GameObject)
シーンの中にあるもの全て。オブジェクトはゲーム内の「要素」を表し、座標や親子関係を持つ。また、オブジェクトには、複数のコンポーネントがアタッチ可能。
https://docs.unity3d.com/Manual/GameObjects.html
コンポーネント(Component)
オブジェクトに機能を追加するためのもの。スクリプトやアニメーション、カメラやコライダー(Collider)などが含まれる。 いろいろなコンポーネントをくっつけることで、 GameObjectの見た目や働き方が変わっていく。
アタッチ
シーンに追加した GameObjectにコンポーネントをつけて機能を追加する操作のこと。
アセット(Asset)
ゲームを作る素材のこと。
メソッド
「何かの値を受け取って作業(処理)を行い、結果を値として返す」という働きをする。関数やファンクションとも呼ばれる。
f
float(32bit浮動小数点数)のf。Unityでは、「0.01f」というように、32bit浮動小数点数を表現するときに使う。
0.01 //コンパイルエラーになる 0.01f //正解。32bit浮動小数点数を表現する場合、C#ではこう書く