Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9297

UnityEngine.Debugログを、非表示にするのではなく、コードから除去する

$
0
0

前提

  • Unity 2019.4.9f1 (LTS)

参考

どうもありがとうございました。

仕組み

  • ラッパークラスは、#if !DEBUGLOGによって、DEBUGLOGシンボルが未定義の場合だけ有効になります。
  • クラスでは、UnityEngine.Debugのメソッドを一通り網羅して、同名の何もしないメソッドを定義します。
  • 定義されたメソッドは、[System.Diagnostics.Conditional ("DEBUGLOG")]によって、呼び出し自体が無視されコンパイルされません。
    • Conditionalアトリビュートは、シンボルが未定義の際に呼び出しを無視するようにコンパイラに指示します。
  • クラスが有効だと、Debugに対して、本来のUnityEngine.Debugに置き換わって、このクラスが参照されます。
  • DEBUGLOGシンボルが定義されるとクラスの定義自体が無効になり、UnityEngine.Debugが使われるようになります。

使い方

  • 一般に、ログを出力する際はProject Settings> Player> Scripting Define SymbolsDEBUGLOGを記入し、除去する際は消します。
  • シンボルをDEBUGに置き換えると、シンボルを定義せずとも、開発時は出力され、リリース時には除去されるようになります。

結果

#if !DEBUGLOG
publicclassDebug{[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidAssert(boolcondition,stringmessage,Objectcontext){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidAssert(boolcondition,objectmessage,Objectcontext){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidAssert(boolcondition,stringmessage){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidAssert(boolcondition,objectmessage){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidAssert(boolcondition,Objectcontext){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidAssert(boolcondition){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidAssert(boolcondition,stringformat,paramsobject[]args){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidAssertFormat(boolcondition,stringformat,paramsobject[]args){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidAssertFormat(boolcondition,Objectcontext,stringformat,paramsobject[]args){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidBreak(){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidClearDeveloperConsole(){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidDebugBreak(){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidDrawLine(Vector3start,Vector3end,Colorcolor,floatduration,booldepthTest){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidDrawLine(Vector3start,Vector3end,Colorcolor,floatduration){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidDrawLine(Vector3start,Vector3end){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidDrawLine(Vector3start,Vector3end,Colorcolor){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidDrawRay(Vector3start,Vector3dir,Colorcolor,floatduration){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidDrawRay(Vector3start,Vector3dir,Colorcolor,floatduration,booldepthTest){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidDrawRay(Vector3start,Vector3dir){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidDrawRay(Vector3start,Vector3dir,Colorcolor){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLog(objectmessage){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLog(objectmessage,Objectcontext){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogAssertion(objectmessage,Objectcontext){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogAssertion(objectmessage){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogAssertionFormat(Objectcontext,stringformat,paramsobject[]args){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogAssertionFormat(stringformat,paramsobject[]args){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogError(objectmessage,Objectcontext){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogError(objectmessage){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogErrorFormat(stringformat,paramsobject[]args){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogErrorFormat(Objectcontext,stringformat,paramsobject[]args){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogException(System.Exceptionexception,Objectcontext){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogException(System.Exceptionexception){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogFormat(Objectcontext,stringformat,paramsobject[]args){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogFormat(stringformat,paramsobject[]args){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogWarning(objectmessage){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogWarning(objectmessage,Objectcontext){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogWarningFormat(stringformat,paramsobject[]args){}[System.Diagnostics.Conditional("DEBUGLOG")]publicstaticvoidLogWarningFormat(Objectcontext,stringformat,paramsobject[]args){}}#endif

Viewing all articles
Browse latest Browse all 9297

Trending Articles