うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】Monobehaviour 継承クラスで利用できる UnityEvent 一覧

Generally

よく使うやつ

 
    /// <summary>
    /// インスタンスの生成時に1度だけ呼ばれる
    /// ActiveSelf が false だった場合でも呼ばれる
    /// </summary>
    private void Awake()
 
    /// <summary>
    /// activeSelf が true になった時に1回だけ呼び出される
    /// activeSelf が false だった場合は
    /// true になったタイミングで毎回呼ばれる
    /// </summary>
    private void Start()
 
    /// <summary>
    /// Start() を非同期で利用したい時に使う
    /// どちらかしか使えない
    /// </summary>
    private IEnumerator Start()
 
    /// <summary>
    /// activeSelf が true の場合に毎フレーム呼び出される
    /// </summary>
    private void Update()
 
    /// <summary>
    /// activeSelf が true の場合に一定間隔で呼び出される
    /// 主に物理演算時に利用する
    /// </summary>
    private void FixedUpdate()
 
    /// <summary>
    /// activeSelf が true の場合に Updateの呼び出し後に呼び出される
    /// </summary>
    private void LateUpdate()
         
    /// <summary>
    /// オブジェクトが破棄されるタイミング
    /// </summary>
    private void OnDestroy()
        
    /// <summary>
    /// activeSelf が true の場合
    /// もともと activeSelf が true の場合 Awake のあとに   
    /// </summary>
    private void OnEnable()
 
    /// <summary>
    /// activeSelf が false の場合
    /// もともと activeSelf が false の場合 Awake のあとに   
    /// </summary>
    private void OnDisable()
 
    /// <summary>
    /// GUIを描画するときに利用する
    /// 毎フレーム複数回呼ばれるし、GCが激しい
    /// </summary>
    private void OnGUI()

Collider

 
    /// <summary>
    /// Collider にあたったとき
    /// </summary>
    private void OnCollisionEnter(Collision other)
 
    /// <summary>
    /// Collider2D にあたったとき
    /// </summary>
    private void OnCollisionEnter2D(Collision2D other)
 
    /// <summary>
    /// Collider から離れたとき
    /// </summary>
    private void OnCollisionExit(Collision other)
 
    /// <summary>
    /// Collider2D から離れたとき
    /// </summary>
    private void OnCollisionExit2D(Collision2D other)
 
    /// <summary>
    /// Collider が衝突している間
    /// </summary>
    private void OnCollisionStay(Collision other)
 
    /// <summary>
    /// Collider2D が衝突している間
    /// </summary>
    private void OnCollisionStay2D(Collision2D other)

Collider (Is Trigger true)

IsTrigger が true な Collider Collider2Dで利用する

 
    /// <summary>
    /// Is Trigger な Collider に入ったタイミング
    /// </summary>
    private void OnTriggerEnter(Collider other)
 
    /// <summary>
    /// Is Trigger な Collider2D に入ったタイミング
    /// </summary>
    private void OnTriggerEnter2D(Collider2D other)
 
    /// <summary>
    /// Is Trigger な Collider から出たタイミング
    /// </summary>
    private void OnTriggerExit(Collider other)
     
    /// <summary>
    /// Is Trigger な Collider2D に入ったタイミング
    /// </summary>
    private void OnTriggerExit2D(Collider2D other)
    
    /// <summary>
    /// Is Trigger な Collider の中にいる間
    /// </summary>
    private void OnTriggerStay(Collider other)
    
    /// <summary>
    /// Is Trigger な Collider2D の中にいる間
    /// </summary>
    private void OnTriggerStay2D(Collider2D other)

Editor

Editorでしか呼ばれない #if UNITY_EDITOR は必要無いけど
UnityEditorクラスを利用する場合は必要

 
#if UNITY_EDITOR
 
    /// <summary>
    /// コンポーネントの追加
    /// コンテキストメニューのリセット時
    /// </summary>
    private void Reset()
 
    /// <summary>
    /// インスペクター値の変更
    /// </summary>
    private void OnValidate()
    
    /// <summary>
    /// Gizmo を表示する
    /// </summary>
    private void OnDrawGizmos()
 
    /// <summary>
    /// オブジェクトを選択時のみ Gizmo を表示する
    /// </summary>
    private void OnDrawGizmosSelected()

#endif

Application

 
    /// <summary>
    /// アプリ起動時やレジューム true
    /// アプリ終了時やサスペンド false
    /// 端末の電源ボタンを押した際には呼ばれない
    /// </summary>
    private void OnApplicationFocus(bool hasFocus)
 
    /// <summary>
    /// アプリのサスペンド true
    /// アプリのレジューム false
    /// </summary>
    private void OnApplicationPause(bool pauseStatus)
 
    /// <summary>
    /// アプリケーションの終了
    /// </summary>
    private void OnApplicationQuit()

Mouse

GameObject に Collider もしくは Collider2D がある状態で スクリプトに仕込めば動作する

Rayを飛ばしてくれているみたいなので、一番手前のものが呼び出されます

 
    /// <summary>
    /// マウスクリック
    /// </summary>
    private void OnMouseDown()
 
    /// <summary>
    /// マウスドラッグ
    /// </summary>
    private void OnMouseDrag()
 
    /// <summary>
    /// マウスがコライダー内に入ったとき
    /// </summary>
    private void OnMouseEnter()
 
    /// <summary>
    /// マウスがコライダーから出たとき
    /// </summary>
    private void OnMouseExit()
 
    /// <summary>
    /// マウスがコライダー内にいる間
    /// </summary>
    private void OnMouseOver()
 
    /// <summary>
    /// マウスを離したとき
    /// </summary>
    private void OnMouseUp()
 
    /// <summary>
    /// クリックしてからマウスがコライダー内にいる間に離したとき
    /// </summary>
    private void OnMouseUpAsButton()

Animator

 
    /// <summary>
    /// Animator があるときに IKを調整できる
    /// https://docs.unity3d.com/jp/460/ScriptReference/MonoBehaviour.OnAnimatorIK.html
    /// </summary>
    private void OnAnimatorIK(int layerIndex)
 
    /// <summary>
    /// Root Motion を使ってる際に移動させるときに使う
    /// </summary>
    private void OnAnimatorMove()

Transform

 
    /// <summary>
    /// 親もしくは自身の CanvasGroup の値が変更されたとき
    /// </summary>
    private void OnCanvasGroupChanged()
  
    /// <summary>
    /// 親もしくは自身の Canvas の activeSelf が変わったとき
    /// 親もしくは自身の Canvas の Orverride Sorting のフラグが変わったとき
    /// </summary>
    private void OnCanvasHierarchyChanged()
 
    /// <summary>
    /// 自身の 親 Transfrom が変更される前
    /// </summary>
    private void OnBeforeTransformParentChanged()
        
    /// <summary>
    /// 自身の 親 Transfrom が変更されたあと
    /// </summary>
    private void OnTransformParentChanged()
 
    /// <summary>
    /// 自身の 子 Transfrom が変更されたとき
    /// </summary>
    private void OnTransformChildrenChanged()
         
    /// <summary>
    /// RectTransformのサイズが変わるとき
    /// </summary>
    private void OnRectTransformDimensionsChange()

Render

 
    /// <summary>
    /// カメラがシーンをカリングする前
    /// カメラのコンポーネントが必要
    /// </summary>
    private void OnPreCull()
        
    /// <summary>
    /// カメラがシーンをレンダリングする前
    /// カメラのコンポーネントが必要
    /// </summary>
    private void OnPreRender()
        
    /// <summary>
    /// カメラがシーンをレンダリングした後
    /// カメラのコンポーネントが必要
    /// SSを撮影する場合はここ
    /// </summary>        
    private void OnPostRender()
 
    /// <summary>
    /// カメラの描画を加工できる
    /// 主にポストエフェクトで利用する
    /// カメラのコンポーネントが必要
    /// </summary>        
    private void OnRenderImage(RenderTexture src, RenderTexture dest)
 
    /// <summary>
    /// カメラがシーンをレンダリングした後
    /// カメラのコンポーネントが無くても良い
    /// </summary>        
    private void OnRenderObject()
        
    /// <summary>
    /// オブジェクトが見える状態のときに
    /// カメラ毎に1回呼び出される
    /// Camera.current.name を利用して映しているカメラを取得できる
    /// </summary>        
    private void OnWillRenderObject()
         
    /// <summary>
    /// カメラから映らなくなったとき
    /// </summary>
    private void OnBecameInvisible()
 
    /// <summary>
    /// カメラに映ったとき
    /// </summary>
    private void OnBecameVisible()

Particle

 
    /// <summary>
    /// パーティクルがコライダーにあたったとき
    /// </summary>
    private void OnParticleCollision(GameObject other)
        
    /// <summary>
    /// パーティクルの再生が止まったとき
    /// StopAction を CallBackにする必要がある
    /// </summary>
    private void OnParticleSystemStopped()
 
    /// <summary>
    /// パーティクルのトリガーモジュールが有効なときに毎フレーム呼び出される
    /// </summary>
    private void OnParticleTrigger()
 
    /// <summary>
    /// 2019.3から導入されたらしい、よくわからん
    /// https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnParticleUpdateJobScheduled.html
    /// </summary>
    private void OnParticleUpdateJobScheduled()

Network

多分今は使われてないであろうレガシーな処理 多分Networkクラスを使った際のトリガーになってるんだと思われる

 
    /// <summary>
    /// サーバに接続した際
    /// </summary>
    private void OnConnectedToServer()
         
    /// <summary>
    /// サーバを切断した際
    /// </summary>
    private void OnDisconnectedFromServer(NetworkDisconnection info)
         
    /// <summary>
    /// サーバ接続が失敗した際
    /// </summary>
    private void OnFailedToConnect(NetworkConnectionError error)
         
    /// <summary>
    /// Master サーバ接続が失敗した際
    /// </summary>
    private void OnFailedToConnectToMasterServer(NetworkConnectionError error)
 
    /// <summary>
    /// Master サーバからデータの送受信をした際
    /// </summary>
    private void OnMasterServerEvent(MasterServerEvent msEvent)
 
    /// <summary>
    /// Network.Instantiateでネットワーク化されたオブジェクトで呼び出されます。
    /// </summary>
    private void OnNetworkInstantiate(NetworkMessageInfo info)
 
    /// <summary>
    /// 新しいプレーヤーが正常に接続されるたびにサーバーで呼び出されます。
    /// </summary>
    private void OnPlayerConnected(NetworkPlayer player)
 
    /// <summary>
    /// 新しいプレーヤーが切断されるたびにサーバーで呼び出されます。
    /// </summary>
    private void OnPlayerDisconnected(NetworkPlayer player)
  
    /// <summary>
    /// ネットワークビューによって監視されるスクリプトの変数の同期をカスタマイズするために使用します
    /// </summary>
    private void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)
 
    /// <summary>
    /// Network.InitializeServer が実行され完了したときにサーバー上で呼び出されます
    /// </summary>
    private void OnServerInitialized()

Other

 
    /// <summary>
    /// AudioClip のコンポーネントがある場合に利用できる
    /// AudioClip にフィルターをかけられる
    /// 加工処理が重そうなので多分使えない
    /// </summary>
    private void OnAudioFilterRead(float[] data, int channels)
 
    /// <summary>
    /// Character Controllerを利用した際に
    /// コライダーにあたったときに呼び出される
    /// </summary>
    private void OnControllerColliderHit(ControllerColliderHit hit)
        
    /// <summary>
    /// AnimationからコンポーネントのPropertyを変更した際に呼び出される
    /// 何が変わったかは分からない
    /// </summary>
    private void OnDidApplyAnimationProperties()
        
    /// <summary>
    /// Joint コンポーネントを利用した際に
    /// Joint が外れたとき
    /// </summary>
    private void OnJointBreak(float breakForce)
 
    /// <summary>
    /// Joint2D コンポーネントを利用した際に
    /// Joint が外れたとき
    /// </summary>
    private void OnJointBreak2D(Joint2D brokenJoint)