Unity - 研究tolua(3) - C#调用lua方法 带参数
2021/12/5 9:17:35
本文主要是介绍Unity - 研究tolua(3) - C#调用lua方法 带参数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C#
using UnityEngine; using LuaInterface; public class Main : MonoBehaviour { LuaState main = null; void Start() { //创建虚拟机 //this.main.RegFunction main = new LuaState(); main.Start(); LuaTable lt = main.DoFile<LuaTable>("ToolBox.lua"); lt.Call("Main", lt); //调用带参数的 LuaFunction ltfun = lt.GetLuaFunction("AngleRota"); Vector2 vec2 = ltfun.Invoke<int, Vector2>(90);//90是参数 Invoke 这个方法可以跟着进去看看具体使用方法,<我需要传的方法,返回的类型> 这个括号里的类型我是这样理解的 Debug.Log($"vec2 ===> {vec2.x},{vec2.y}"); //执行Main.lua 脚本里的 main:GameEnter() //lt.Call("AngleRota", lt); //lt.GetLuaFunction("AngleRota").Call(90); //注销虚拟机 lt.Dispose(); } }
lua 里面的具体方法不用管,只是我自己的一些计算方法,主要内容是C#调用的步骤
local ToolBox = {} function ToolBox:Main() print('1====1') end function ToolBox:AngleRota(angle) if angle == nil then print('angle===>', angle) angle = 90 end while (angle > 180) do angle = angle - 360 end while angle < -180 do angle = angle + 360 end local x = 0 local y = 0 if angle < 180 and angle > 0 then if (angle < 90) then x = Mathf.Round(-(angle / 90)) y = Mathf.Round(1 + x) elseif (angle < 180) then x = Mathf.Round(-(angle / 180), 2) y = Mathf.Round(-(1 + x)) else x = 1 y = 0 end elseif (angle > -180 and angle < 0) then if (angle > -90) then x = Mathf.Round(angle / 90) y = Mathf.Round(1 - x) elseif angle > -180 then x = Mathf.Round(angle / 180) y = Mathf.Round(-(1 - x)) end elseif angle == 180 then x = 0 y = -1 elseif angle == 0 then x = 0 y = 1 end --vec2 = print('x ==> ', x) print('y ==> ', y) print('x and y ==> ', Vector2(x, y).x, Vector2(x, y).y) return Vector2(x, y) end return ToolBox
这篇关于Unity - 研究tolua(3) - C#调用lua方法 带参数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统