C#
public static class Lesson10
{
[CSharpCallLua] //为系统类型的委托UnityAciton<float>添加特性 再生成代码
public static List<Type> cSharpCallLuaList = new List<Type>()
{ typeof(UnityAction<float>) };
}
lua
拖动滑块 lua打印滑块数值
local slider=CS.UnityEngine.GameObject.Find("Slider")
print(slider)
local sliderScript=slider:GetComponent(typeof(CS.UnityEngine.UI.Slider))
print(sliderScript)
-- 无法直接使用AddListener 需要加特性
sliderScript.onValueChanged:AddListener(function (value) print(value)end)
总结:
解决问题:给系统类或第三方库添加特性[CSharpCallLua]、[LuaCallCSharp]
使用方法:
静态类中的静态列表前添加特性,列表中装载系统类型
实例:
public static class Lesson10
{
[CSharpCallLua] //C#调用lua
public static List<Type> cSharpCallLuaList = new List<Type>()
{typeof(UnityAction<float>)};
[LuaCallCSharp]//lua调用C#
public static List<Type> luaCallCSharpList = new List<Type>()
{typeof(CustomCall)};
}