【Unity】Debug.unityLogger.logEnabledで消せるログはDebug.Logだけだという話

Debug.unityLogger.logEnabledで消せるログはDebug.Logだけだという話です。

Unity2018.4.0

Debug.unityLogger.logEnabled

Debug.unityLogger.logEnabledをfalseにするとログ出力をOFFにできます。

docs.unity3d.com

ただ、これでOFFにできるのはあくまでDebug.Logを使って吐き出したログのみなので、
Unityが出力する警告などは消せません。

試してみる

試しにこんなスクリプトを書いてみます。

using UnityEngine;
using UnityEngine.SceneManagement;

public class Example : MonoBehaviour
{
    private void Awake()
    {
        Debug.unityLogger.logEnabled = false;
    }

    private void Update()
    {
        if (0 < Input.touchCount) {
            var touch = Input.GetTouch(0);
            if(touch.phase == TouchPhase.Began)
            {
                SceneManager.LoadScene("Scene02", LoadSceneMode.Additive);
                SceneManager.UnloadScene("Scene02");
            }
        }
    }
}

タップしたらScene02を読み込みます。
この時Scene02にはスクリプトをMissingにしたオブジェクトを置いておきます。
UnityはこのようなGameObjectがあると

The referenced script on this Behaviour is missing!

みたいなログを吐くのでこれで確認できるはずです。

結果

やはりDebug.unityLogger.logEnabled = false;にしてもUnityのログが出力されました。

f:id:halya_11:20190419191518p:plain

Debug.unityLogger.logEnabledで消せるログはDebug.Logだけだということがわかりました。