游戏发布到手机上调试的时候有时候会需要在屏幕上打印一些信息,我写了一个小工具类,分享出来,用的是OnGUI,很简单,直接上代码了


using UnityEngine;

using System.Collections;

using System.Collections.Generic;


public class OnGUIDebug : MonoBehaviour {


    public static OnGUIDebug Instance;


    public int FontSize = 40;

    public int LabelHeight = 40;

    int labelPos_Y = 0;

    //消息list

    static List<string> msgList = new List<string>();

    

    GUIStyle style = null;


void Awake () {

        style = new GUIStyle();

        style.fontSize = FontSize;

        style.normal.textColor = Color.red;


        Instance = this;

        DontDestroyOnLoad(gameObject);

}


    public static void AddMsg(string msg)

    {

        if (!msgList.Contains(msg))

            msgList.Add(msg);

    }


    void OnGUI()

    {

        labelPos_Y = 10;

        for (int i = 0; i < msgList.Count; i++)

        {

            GUI.Label(new Rect(10, labelPos_Y, 1080, LabelHeight), msgList[i], style);

            labelPos_Y += LabelHeight;

        }

        

        if(labelPos_Y >= Screen.height)

        {

            if(msgList.Count > 0)

                msgList.RemoveAt(0);

        }

    }


   void Start()

    {

        //InvokeRepeating("testMsg", 1, 1);

    }


    int counter = 0;

    void testMsg()

    {

        msgList.Add("test" + (++counter).ToString());

    }


}


其实,如果用一个带滚动条的文本域或者scroll view什么的可能更好用,有兴趣您可以试试。