Programming Serendipity

プログラミングを中心に種々雑多に書き留めます

Unity5 メモ22

  • Unityでのシングルトンの例
public class SingltonExample : MonoBehaciour  
{  
    public static SingltonExample instance;  
  
    void Awake()  
    {  
        if(instance != null)  
        {  
            // すでに生成されていれば新しいインスタンスは破棄する  
            Destroy(gameObject);  
        }  
        else  
        {  
            // 初生成であればこれを保持し、シーンをまたいでも消えないようにする  
            instance = this;  
            DontDestroyOnLoad(gameObject);  
        }  
    }  
}  
  • 実時間でWaitForSeconds()をする
    通常WaitForSeconds()Time.timeScaleに依存しているので、これが0の時にWaitForSeconds()を呼び出すと処理が帰ってこなくなる。
    そこで、以下のように記述すると、timeScaleに依存せず実時間で処理の遅延ができる。
private IEnumerator MyCoroutine()  
{  
    // Do stuff  
  
    yield return StartCoroutine(WaitForRealSeconds(DURATION));  
  
    // Do other stuff  
}  
  
IEnumerator WaitForRealSeconds(float time)  
{  
    float start = Time.realtimeSinceStartup;  
    while (Time.realtimeSinceStartup < start + time)  
    {  
        yield return null;  
    }  
}  

ref: http://answers.unity3d.com/questions/301868/yield-waitforseconds-outside-of-timescale.html

  • ショートカット
    Alt + Shift + N = Create Empty Child
    Alt + Shift + A = 選択したヒエラルキー上のオブジェクトのアクティブをトグル
    private変数をインスペクターで確認する:右上の横線3つのプルダウンメニューからDebugを選択する
    タブの複製: タブを右クリック、もくしは右上の横線3つのプルダウンメニューからAdd Tab