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