unity打包安卓后,唯一的办法就是用Eclipse 中的DDSM 抓取apklog信息来测试APK包的问题,
但是本人对安卓那套abd.exe各种搞不定,说白了,Eclipse连接手机真的要看运气
所以,自己写一个Panel+ScrollView+ text
实现也简单,没有过多的整理,直接扔上来,记录一二,好记性不如烂笔头啊
public class DebugPanel : MonoBehaviour
{
public static DebugPanel Instance;
public Text logText;
public RectTransform content;
private int count = 0;
private Vector2 contentVe2 = new Vector2();
StringBuilder MyStrBulder;
private bool isUpdate = false;
private bool isShow = false;
private DebugPanel()
{
if (Instance == null)
Instance = this;
}
private string strDebg = string.Empty;
public void AddText(string str)
{
isUpdate = true;
MyStrBulder.AppendFormat("{0}:{1}\n", count, str);
count++;
isUpdate = false;
}
// Use this for initialization
void Awake()
{
MyStrBulder = new StringBuilder();
#if UNITY_5
Application.logMessageReceived += HandleLog;
#else
Application.logMessageReceived += HandleLog;
#endif
}
void HandleLog(string message, string stackTrace, LogType type)
{
switch (type)
{
case LogType.Error:
message = "<color=#FF0000>" + message+"</color>";
break;
case LogType.Assert:
message = "<color=#0000ff>" + message + "</color>";
break;
case LogType.Warning:
message = "<color=#EEEE00>" + message + "</color>";
break;
case LogType.Log:
message = "<color=#000000>" + message + "</color>";
break;
case LogType.Exception:
break;
default:
break;
}
AddText(message);
}
public void ShowHide()
{
isShow = !isShow;
if (isShow)
{
transform.GetChild(0).localPosition = new Vector3(-9990, 0, 0);
}
else
{
transform.GetChild(0).localPosition = new Vector3(0, 0, 0);
}
}
private bool isAdd = false;
// Update is called once per frame
void Update()
{
logText.text = MyStrBulder.ToString();
//logText.text += MyStrBulder;
contentVe2.Set(200, 23.5f * count);
content.sizeDelta = contentVe2;
}
}