xLua中调用C#中操作方法(无返回值,没有ref out修饰参数 最终修改参数值得方法)
2020-02-18 01:29
435 查看
本人小白,最近在用xLua重构C#代码中遇到了难题,如下:
Vector3[] V3Arr = new Vector3[4] RectTransform.GetWorldCorners(V3Arr)
就是这样一个方法,Unity官方文档介绍,首先实例化一个Vector3类型的数组,作为参数传入到方法中,执行方法后将调用实例的RectTransform四个点的世界坐标填充到数组中。顺序依次为左下、左上、右上、右下。
我在xlua重构时把这个方法当做传址引用处理了,大概是这样:
local corners = {} --初始化一个数组(lua中对应表) local void,corners = RectTransform:GetWorldCorners(corners)
一开始准备对照 ref 修饰参数的方法,方法的ref返回值对应xLua的多返回值进行接收的
后来发现一只为空。多亏问了xlua大神才解决的问题,特此记录一下。
这种像填充,或者修改参数的方法,没有返回值。在传参的时候要直接传入C#侧类型的参数
在lua侧先实例化数组,然后再传入到方法中,此时方法就可以正常的修改或填充参数了:
local corners = CS.System.Array.CreateInstance(typeof(CS.UnityEngine.Vector3),4) RectTransform:GetWorldCorners(corners)
这时打印corners正常填充了四个角的点坐标.
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Lua math数学函数库 对于取整存在误差的情况(例如math.modf())
- openresty安装LuaXml
- lua web 开发
- Lua面向对象~创建类以及其实例的概念
- 转载:Valuation Method,评估方法
- C语言调用Lua脚本
- Wow 插件开发和 Lua语言的研究
- lua_table 学习
- Xlua热更新
- Lua 安装
- 浅析android手游lua脚本的加密与解密
- EvaluateExpression 伟大而卑微的发现
- EvaluateExpression 2.0
- 「Codeforces」742D Arpa's weak amphitheater and Mehrdad's valuable Hoses (背包、并查集)
- Beginning Lua with WoW Addons - The TOC File
- Unable to evaluate expression using this context
- Lua中的迭代器
- Lua实现继承
- 【转载】【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态
- 【Rainmeter】写Lua脚本遇到的文件读写问题