游戏发布到手机上调试的时候有时候会需要在屏幕上打印一些信息,我写了一个小工具类,分享出来,用的是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什么的可能更好用,有兴趣您可以试试。