ゆーじのUnity備忘録

備忘録として不定期で記事にしています。
主にUnityですが、Maya、GIMP、iOS等の話とかもしたり。
開発アプリ→http://appstore.com/yusukenakajima

--
--  --:--:--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

 スポンサー広告

20
2016  18:35:35

イベント関数(1)

Unityを使うにあたって絶対に必要な知識がこの「イベント関数」です。


イベント関数という呼び方には馴染みがないかもしれませんが、いつも必ず使っているStart(), Update(), OnCollisionEnter()などのことです。

Awake()やStart()などの初期化系、Update()などのメイン処理系、OnCollisionやOnTriggerなどのイベント系を知っていれば十分ゲーム制作はできると思います。


しかし!(・Д・)


イベント関数は他にもたくさんあり便利なものも多いので、使う使わないは別としてひと通り目を通しておくことを強くお勧めします!引き出しを多く持っているに越したことはありません(=゚ω゚)ノ



0. イベント関数一覧


Reset:Resetコマンド実行時

Awake:プレハブのインスタンス化直後
OnEnable:オブジェクトを有効にした直後
OnLevelWasLoaded:シーンがロードされた直後

Start:最初のフレームの直前

OnApplicationPose:バックグラウンドに行ったフレームの最後

FixedUpdate:一定間隔で
Update:フレーム毎に
LateUpdate:Updateの直後

OnPreCull:カメラがシーンを間引く直前
OnBecameVisible/OnBecameInvisible:オブジェクトがカメラに対し表示/非表示になるとき
OnWillRenderObject:オブジェクトがレンダリングされたとき(一度のみ)
OnPreRender:シーンのレンダリング開始前
OnRenderObject:全シーンのレンダリング終了後
OnPostRender:レンダリング終了後
OnRenderImage:画面レンダリング終了後
OnGUI:GUIに応じて
OnDrawGizmos:Gizmos描画に使用

yield:全Update()処理後
yield WaitForSeconds:全Update()処理後に指定時間経った後
yield WaitForFixedUpdate:全FixedUpdate()処理後
yield WWW:WWWダウンロード完了後
yield StartCoroutine:MyFuncコルーチンが最初に完了するのを待つ

OnDestroy:オブジェクトが破棄される直前のフレーム更新後

OnApplicationQuit:アプリケーション終了直前、再生モード停止直前
OnDisable:動作が無効になった時



参考:Unity-マニュアル:イベント関数の実行順


知らない関数がたくさんあります。。。




1. 実行時ではなく編集時に有効なイベント関数


Reset()

この関数は結構特殊な関数です。「こんな関数見たことない!」と知らない人も多いのではないでしょうか?


他のイベント関数はゲーム実行時に何らかの働きをしますが、
このReset()はゲームを実行した際ではなく、編集している際に便利な関数です。



例えば、こんな風にスクリプトを書いてみます。

public class ResetScript : MonoBehaviour {

    void Reset(){
        GetComponent<Rigidbody> ().isKinematic = true;
    }
}




これをRigidbodyを持った適当なオブジェクトにアタッチします。


下の画像のように、デフォルトではRigidbodyのisKinematicはfalse(チェックが外れた状態)になっていると思います。
resetrigid.png 




ここで、ResetScriptコンポーネントの右上にある歯車ボタンをクリックし、Resetを押してみましょう。
Rigidbodyの歯車ボタンではないので注意!アタッチしたスクリプトの方です。



するとRigidbodyのisKinematicがtrueになったと思います。



Reset()はそのスクリプトのResetを押した時に実行される関数なのです。


isKinematicの値を変えるぐらい普通にやれよ!って感じですが、
Transformの値だったり複数のコンポーネントを初期化するときなんかには結構便利なのでは、、、?


この機能を知っておくだけでも何かの役に立つかもしれません!(笑)

関連記事
スポンサーサイト

 Unity備忘録

- 0 Comments

Leave a comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。