UH2S3L13——Lua调用函数(拓展方法)

Lua调用C#方法

假设我们要调用下面的静态方法和成员方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Lesson4
{
public string name = "唐老狮";

public void Speak(string str)
{
Debug.Log(str);
}

public static void Eat()
{
Debug.Log("吃东西");
}
}

调用静态方法

使用静态方法,使用:命名空间.类名.静态方法名()​ 即可

1
Lesson4.Eat()

image

调用成员方法

调用成员方法,调用者需要是实例化对象,并且使用:​来调用成员方法

1
2
local obj = Lesson4()
obj:Speak("唐老狮我爱你")

image

调用拓展方法

假设我们要调用下面的拓展方法

1
2
3
4
5
6
7
8
public static class Tools
{
//Lesson4的拓展方法
public static void Move(this Lesson4 obj)
{
Debug.Log(obj.name + "移动");
}
}

拓展方法非常特别 需要在CustomSettings​中,为Lesson4​添加延伸类型固定写法

1
2
3
4
5
6
7
8
9
10
11
public static class CustomSettings
{
//...
public static BindType[] customTypeList =
{
//...
_GT(typeof(Lesson4)).AddExtendType(typeof(Tools)),
//...
}
//...
}

这样才能正常调用拓展方法

1
2
local obj = Lesson4()
obj:Move()

image