Notes d'étude XLua { }

Lua appelle C#

Appelé via le code d'adaptation généré

Convertissez la classe C# sur la liste blanche et étiquetée avec [LuaCallCSharp] en une table Lua, puis enregistrez les méthodes et les propriétés de la classe C# dans la table. Bonne performance, mais prend beaucoup de mémoire dans le package d'installation

Appel par mécanisme de réflexion

Les performances sont médiocres et la méthode de C # n'est recherchée que lorsqu'elle est en cours d'exécution, mais elle occupe une petite quantité de mémoire dans le package d'installation

C# appelle Lua

Utiliser la méthode de la classe LuaEnv dans XLua

1. DoString

chaîne : DoString("print('a')")
module :DoString("require 'Module.lua'")

2. Reflet des types de valeur

luaenv.Get<int>("a")

3. Réflexion de type référence

Les classes et interfaces C# doivent ajouter la balise [CSharpCallLua]
Global.GetInPath<委托>("math.max")
Global.GetInPath<IPerson>("Person")

Générer le code d'adaptation

Generator.cs

GenAll()

Peut être étendu dans l'éditeur Unity : Générer→Code C#→Exportation XLua

modèle

Path : XLua\Src\Editor\Template, vous pouvez ajouter des instructions d'exécution, des fichiers Warp et des appels Lua C#, tels que static int m <%=method.Name%>(RealStatePtr L)
dans LuaClassWarp.tpl.txt, ajouter print("<%=method. Nom %>"), vous pouvez imprimer le nom de la méthode lors de l'appel d'une méthode

Générer un code d'adaptation étendu

XLuaExtensionGenerator.cs
LuaFunction, C# appelle Lua

おすすめ

転載: blog.csdn.net/weixin_43921423/article/details/129212625