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