プログラミング系のネタをまとめていきます。

GameObject


ScriptReference - GameObject
http://unity3d.com/support/documentation/ScriptRef...

Unityのシーン上に配置されるオブジェクトの基本となるもの。
必ず Tranform コンポーネントを持っている。

既存のコンポーネントやユーザーが作成したコンポーネントはこの GameObject に追加することで動作します。

Transform


ScriptReference - Transform
http://unity3d.com/support/documentation/ScriptRef...

GameObjectの座標情報、親子階層情報を持つコンポーネント。

MonoBehaviour


ScriptReference - MonoBehaviour
http://unity3d.com/support/documentation/ScriptRef...

ユーザーがオリジナルコンポーネントを作成するとき、このクラスを継承して作成します。
JavaScriptでは自動的にこのクラスを継承した形になるが、C#, Boo では明示的に継承する必要がある。

主要関数


これらの関数は .NET frameworkの「リフレクション」を利用して呼び出されるので、
関数呼び出しのコストが大きいです。
GameObjectの数が増えると、そのコストも無視できなくなってくるので、
これらの関数の利用は出来るだけ少なくなるように設計する必要があります。
特に、Update, LateUpdate, FixedUpdate には注意が必要です。

余談ですが、public, private 等のアクセス指定に関係なく呼び出されます。
一般的な処理を実装する関数
AwakeGameObjectがシーン上に配置された時に、一度だけ呼ばれる。
StartGameObjectが動作する(Update)前に、一度だけ呼ばれる。GameObjectが非アクティブの時は呼ばれない。
FixedUpdateフィジックスの処理ループ内で呼ばれる。1フレーム内に一度とは限らない。
CPU処理が1フレーム処理落ちした時、(多分)次のフレームでフィジックスの処理は二回行われる。
処理落ちしても動作が同じになるように、フィジックス処理はループされる。
Updateコンポーネントの処理を実装する関数。1フレームに一回呼ばれる。
LateUpdate全GameObjectのUpdateが終わった後に呼ばれる。全てのものが動作した後に行いたい処理を実装する。
1フレームに一回呼ばれる。
Resetインスペクタでリセットボタンが押された時の処理を記述する。エディターモードでのみ呼ばれる。
マウス操作系
OnMouseEnter
OnMouseOver
OnMouseExit
OnMouseDown
OnMouseUp
OnMouseUpAsButton
OnMouseDrag
コリジョン系
OnTriggerEnter
OnTriggerStay
OnTriggerExit
OnCollisionEnter
OnCollisionStay
OnCollisionExit
OnControllerColliderHit
描画に関する処理
OnPreCull
OnPreRender
OnPostRender
OnRenderObject
OnWillRenderObject
OnRenderImage
GUI,Gizmo表示など
OnGUI
OnDrawGizmosSelected
OnDrawGizmos
その他
あまり使ったこと無いので、未調査。
OnJointBreak
OnParticleCollision
OnJointBreak
OnParticleCollision
OnBecameVisible
OnBecameInvisible
OnLevelWasLoaded
OnEnable
OnDisable
OnDestroy
OnApplicationPause
OnApplicationFocus
OnApplicationQuit
OnPlayerConnected
OnServerInitialized
OnConnectedToServer
OnPlayerDisconnected
OnDisconnectedFromServer
OnFailedToConnect
OnFailedToConnectToMasterServer
OnMasterServerEvent
OnNetworkInstatntiate
OnSerializeNetworkView
OnAudioFilterRead


スクリプト処理順序


スクリプトの処理順はこちらに細かく書かれています。

Execution Order of Event Functions
http://unity3d.com/support/documentation/Manual/Ex...




処理の種類別にまとめると、

  • シーン読み込み後
    • Awake
    • OnEnable
  • Update前の1フレーム目
    • Start
  • フレーム間
    • OnApplicationPause
  • Update処理
    • FixedUpdate
    • Update
    • LateUpdate
  • 描画
    • OnPreCull
    • OnBecameVisible/OnBecameInvisible
    • OnWillRenderObject
    • OnPreRender
    • OnRenderObject
    • OnPostRender
    • OnRenderImage
    • OnGUI
    • OnDrawGizmos
  • コルーチン
    • yield
    • yield WaitForSeconds(2)
    • yield WaitForFixedUpdate()
    • yield WWW
    • yield StartCoroutine(MyFunc)
  • オブジェクトが破棄された時
    • OnDestroy
  • 終了時
    • OnApplicationQuit
    • OnDisable




1フレームの処理順をまとめると、
	All Awake calls
	All Start Calls
	while (stepping towards variable delta time)
		All FixedUpdate functions
		Physics simulation
		OnEnter/Exit/Stay trigger functions
		OnEnter/Exit/Stay collision functions

	Rigidbody interpolation applies transform.position and rotation
	OnMouseDown/OnMouseUp etc. events
	All Update functions
	Animations are advanced, blended and applied to transform
	All LateUpdate functions
	Rendering
タグ

Menu

メインコンテンツ

プログラミング

機器

Macツール

各種情報

Wiki内検索

おまかせリンク

Androidアプリ

AdSense

技術書


管理人/副管理人のみ編集できます