投稿者「mynote」のアーカイブ

Conditional属性で高速化

Unity Editorでの開発中やDebug中は実行したいけれど、リリース版では実行したくないという処理はConditional属性を使うと良いそうです。

使い方は次のような感じ。

using System.Diagnostics;
[Conditional("UNITY_EDITOR")]
public void example()
{
  // 実行したい内容
}

#if..#endifと合わせて使ってみようかなと思います。

リンク

Conditional (C# プログラミング ガイド) | Microsoft Docs
https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/4xssyw96(v=vs.90)

【Unity】 UnityEditorの時のみDebug.Logを出す方法
https://qiita.com/toRisouP/items/d856d65dcc44916c487d

ログファイル – Unity マニュアル
https://docs.unity3d.com/ja/current/Manual/LogFiles.html

Time.timeScaleに依らないWaitForSeconds

UnityでTime.timeScaleに依らないWaitForSecondsを使いたい場合は、WaitForSecondsRealtimeというのが使えるそうです。

使い方はWaitForSecondsと同じ。

IEnumerator Example()
{
  Debug.Log("start");
  yield return new WaitForSecondsRealtime(5.0f);
  Debug.Log("end");
}

Time.realtimeSinceStartup使って自分で実装する手間は必要ないみたいです。

リンク

Unity – Scripting API: WaitForSecondsRealtime
https://docs.unity3d.com/ScriptReference/WaitForSecondsRealtime.html