Unity Editor - Identifier les fichiers Lua

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);
    }
}

Insérer la description de l'image ici

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);
    }
}

Insérer la description de l'image ici

référence

https://docs.unity.cn/cn/current/ScriptReference/AssetImporters.ScriptedImporter.html

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43430402/article/details/128859288
conseillé
Classement