Unity Editor - Aperçu des fichiers Lua
Par défaut, la fenêtre Inspecteur de l'éditeur Unity ne peut pas afficher directement les détails du fichier Lua.
Modifier directement l'affichage de l'Inspecteur
Les fichiers Lua sont reconnus comme DefaultAsset par défaut. Nous pouvons prévisualiser les fichiers Lua en remplaçant le panneau Inspecteur de DefaultAsset.
using System.IO;
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(DefaultAsset))]
public class LuaInspector : UnityEditor.Editor
{
GUIStyle textStyle;
const int MaxLength = 5000;
string detail;
public override void OnInspectorGUI()
{
if (textStyle is null)
{
textStyle = new GUIStyle();
textStyle.normal.textColor = Color.white;
}
string assetPath = AssetDatabase.GetAssetPath(target);
if (!assetPath.EndsWith(".lua"))
return;
if (string.IsNullOrEmpty(detail))
{
detail = File.ReadAllText(assetPath);
if (detail.Length > MaxLength)
detail = detail.Substring(0, MaxLength) + "...\n\n<...etc...>";
}
GUILayout.Box(detail, textStyle);
}
}
Convertir en TextAsset pour l'affichage
Après avoir lu le contenu du fichier, générez un nouveau TextAsset, puis utilisez le TextAsset nouvellement généré comme objet principal
using System.IO;
using UnityEditor.AssetImporters;
using UnityEngine;
[ScriptedImporter(1, ".lua")]
public class LuaImporter : ScriptedImporter
{
string luaTxt;
public override void OnImportAsset(AssetImportContext ctx)
{
if (string.IsNullOrEmpty(luaTxt))
luaTxt = File.ReadAllText(ctx.assetPath);
var display = new TextAsset(luaTxt);
ctx.AddObjectToAsset("Lua Script", display);
ctx.SetMainObject(display);
}
}
référence
https://docs.unity.cn/cn/current/ScriptReference/AssetImporters.ScriptedImporter.html