②Unityはじめての3Dプロジェクト作成
しんしん
いろいろ勉強
Unityにおいて、機能の大部分はコンポーネントによって実現されています。
コンポーネントは二種類があります。
私たちが作成する 3D オブジェクトには、Transform コンポーネントだけが標準で付いており、それ以外のコンポーネントは必要に応じて追加されます。
たとえば、Cube を作成する場合と、空の GameObject を作成して以下のコンポーネントを追加した場合、見た目や動作は同じになります:
コンポーネントを追加した後の状態:
ゲームエンジン内のコンポーネントスクリプトに加え、自作のスクリプトも利用可能です。
Project ウィンドウ → Create → C# Script を選択し、MonoBehaviour を継承したスクリプトを作成します。
作成直後のスクリプトは「NewBehaviourScript」などの名前がついていますが、
クリックして名前を変更できます。(ここでは move に変更しました)
スクリプトを追加するには:
Inspector → Add Component → スクリプト名(例:move)を入力して検索 → 選択
スクリプトをダブルクリックすると、Visual Studio(または設定されたエディタ)で開きます。
Unity は、よく使われる以下のメソッドを自動的に用意してくれます:
private void Awake()
{
// スクリプトインスタンスが読み込まれたときに呼び出されます
Debug.Log("Awake が呼び出されました");
}
private void OnEnable()
{
// スクリプトが有効になったときに呼び出されます
Debug.Log("OnEnable が呼び出されました");
}
// MonoBehaviour が作成された後、最初の Update の前に一度だけ呼び出されます
void Start()
{
Debug.Log("最初のスクリプト");
}
// Update は毎フレーム呼び出されます
void Update()
{
Debug.Log("Update が呼び出されました");
}
private void lateUpdate()
{
// すべての Update メソッドの後に呼び出されます
Debug.Log("LateUpdate が呼び出されました");
}
private void OnDisable()
{
// スクリプトが無効になったときに呼び出されます
Debug.Log("OnDisable が呼び出されました");
}
private void OnDestroy()
{
// スクリプトが破棄されるときに呼び出されます
Debug.Log("OnDestroy が呼び出されました");
}
複数のスクリプトを同じオブジェクトまたは複数のオブジェクトに追加した場合、Unity は以下の順序でメソッドを実行します:
すべての Awake() → すべての Start() → すべての Update() …
実行順を変更したい場合は: