Выкладываю пример скрипта, с помощью которого по нажатии Ctrl + ` вылезает консоль со всеми логами приложения. Для удобства я использовал свой скин GUI чтобы вылезал белый текст на черном фоне. иначе ничего не видно было. этот скрипт можно прицепить на любой ГО в сцене и при нажатии клавbш будет вылезать консоль.
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class Console : MonoBehaviour {
private bool consoleishidden;
private string output;
private string stack;
public GUISkin consoleskin;
private Vector2 scroll;
void Start () {
}
void Update () {
Application.RegisterLogCallback(HandleLog);
if (Input.GetKeyDown("`") && Input.GetKey("left ctrl"))
{
ShowHideConsole();
}
}
void OnGUI()
{
GUI.skin = consoleskin;
GUI.depth = -10000;
if (consoleishidden)
{
ShowConsole();
}
}
void ShowHideConsole()
{
if (consoleishidden)
{
consoleishidden = false;
}
else
{
consoleishidden = true;
}
}
void ShowConsole()
{
GUILayout.BeginArea(new Rect(0,5,Screen.width,Screen.height/2));
scroll = GUILayout.BeginScrollView(scroll);
GUILayout.Label(output);
GUILayout.EndScrollView();
GUILayout.EndArea();
}
void OnEnable()
{
Application.RegisterLogCallback(HandleLog);
}
void HandleLog(string logString, string stackTrace, LogType type)
{
output +=type+": " + logString+"\n";
stack += stackTrace;
scroll.y = 10000000000;
}
}
using System.Collections;
public class Console : MonoBehaviour {
private bool consoleishidden;
private string output;
private string stack;
public GUISkin consoleskin;
private Vector2 scroll;
void Start () {
}
void Update () {
Application.RegisterLogCallback(HandleLog);
if (Input.GetKeyDown("`") && Input.GetKey("left ctrl"))
{
ShowHideConsole();
}
}
void OnGUI()
{
GUI.skin = consoleskin;
GUI.depth = -10000;
if (consoleishidden)
{
ShowConsole();
}
}
void ShowHideConsole()
{
if (consoleishidden)
{
consoleishidden = false;
}
else
{
consoleishidden = true;
}
}
void ShowConsole()
{
GUILayout.BeginArea(new Rect(0,5,Screen.width,Screen.height/2));
scroll = GUILayout.BeginScrollView(scroll);
GUILayout.Label(output);
GUILayout.EndScrollView();
GUILayout.EndArea();
}
void OnEnable()
{
Application.RegisterLogCallback(HandleLog);
}
void HandleLog(string logString, string stackTrace, LogType type)
{
output +=type+": " + logString+"\n";
stack += stackTrace;
scroll.y = 10000000000;
}
}