欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Xlua---Lua访问C#扩展方法

程序员文章站 2022-04-06 13:15:04
背景自己也是xlua新手,刚开始不知道如何从lua访问c#方法,然后google后,也是很普通需要在扩展类加上[XLua.LuaCallCSharp],自己的确也是加了,但是在unity运行的时候还是不行,报nil解决方式经过一番尝试后,发现如果lua需要访问C#扩展方法,需要先清空代码,然后再重新生成,有更好的方式,欢迎留言交流代码示例C#[XLua.LuaCallCSharp]public static class EngineExt{ static public Vecto...

背景

自己也是xlua新手,刚开始不知道如何从lua访问c#方法,然后google后,也是很普通需要在扩展类加上
[XLua.LuaCallCSharp],自己的确也是加了,但是在unity运行的时候还是不行,报nil

解决方式

经过一番尝试后,发现如果lua需要访问C#扩展方法,需要先清空代码,然后再重新生成,有更好的方式,欢迎留言交流
Xlua---Lua访问C#扩展方法

代码示例

C#

[XLua.LuaCallCSharp]
public static class EngineExt
{
    static public Vector3 ScreenToWorldPoint(this RectTransform trans, Vector2 screenPoint, Camera cam = null)
    {
        if (cam == null)
        {
            var cvs = trans.gameObject.GetUICanvas();
            if (cvs != null)
            {
                cam = cvs.worldCamera;
            }
        }
        Vector3 worldPos;
        RectTransformUtility.ScreenPointToWorldPointInRectangle(trans, screenPoint, cam, out worldPos);
        return worldPos;
    }
}

Lua

local worldPos = this.heroObjTempl.RectTransform:ScreenToWorldPoint(scrnPos, nil)

说了这么多,还不是钱的问题!!

跪求打赏
Xlua---Lua访问C#扩展方法

本文地址:https://blog.csdn.net/caiqimin__/article/details/107335015