Pular para o conteúdo principal

Como exibir um README na Unity ao abrir o projeto

· Leitura de 2 minutos

Uma forma interessante de exibir uma mensagem de boas vindas ou informações sobre o projeto ao ser carregado é exibir um conteúdo similar à um arquivo README que pode ser customizado e exibido na janela do inspector dentro do editor da Unity. Neste vídeo eu mostro como criar um ScriptableObject, alterar sua visualização utilizando um CustomEditor e, por fim, colocar o foco do projeto e do inspector neste arquivo ao carregar o projeto na Unity.

Abaixo estão os códigos das duas classes criadas no vídeo como referência, Readme e ReadEditor, respectivamente.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName = "Readme", menuName = "Create Readme")]
public class Readme : ScriptableObject
{
public string Title;
public List<string> Sections = new List<string>();
}
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Readme))]
[InitializeOnLoad]
public class ReadmeEditor : Editor
{
static ReadmeEditor()
{
EditorApplication.delayCall += SelectReadme;
}

static void SelectReadme()
{
EditorApplication.delayCall -= SelectReadme;

var readmeObject = Resources.Load<Readme>("Readme");
if (readmeObject != null)
{
EditorUtility.FocusProjectWindow();
Selection.activeObject = readmeObject;
}
}

protected override void OnHeaderGUI()
{
Readme readme = (Readme)target;

GUILayout.BeginHorizontal();

var style = GUI.skin.GetStyle("label");
style.fontSize = 32;
GUILayout.Label(readme.Title, style);

GUILayout.EndHorizontal();
}

public override void OnInspectorGUI()
{
Readme readme = (Readme)target;

foreach(string section in readme.Sections)
{
var style = GUI.skin.GetStyle("label");
style.fontSize = 18;
style.wordWrap = true;
GUILayout.Label(section, style);

GUILayout.Space(18);
}
}
}

Veja a playlist do canal com mais vídeos sobre Unity clicando aqui.

Dúvidas, comentários ou sugestões para futuros vídeos deixem aqui no post ou lá no vídeo no YouTube.