zoukankan      html  css  js  c++  java
  • Unity热更新04-XLua调用C#-07-Lua调用C# 委托

    print("*********Lua调用C# 委托相关知识点***********")
    
    local obj = CS.Lesson7()
    
    --委托是用来装函数的
    --使用C#中的委托 就是用来装lua函数的
    local fun = function( )
    	print("Lua函数Fun")
    end
    
    --Lua中没有复合运算符 不能+=
    --如果第一次往委托中加函数 因为是nil 不能直接+
    --所以第一次 要先等=
    print("*********开始加函数***********")
    obj.del = fun
    --obj.del = obj.del + fun
    obj.del = obj.del + fun
    --不建议这样写 最好最好还是 先声明函数再加
    obj.del = obj.del + function( )
    	print("临时申明的函数")
    end
    --委托执行
    obj.del()
    print("*********开始减函数***********")
    obj.del = obj.del - fun
    obj.del = obj.del - fun
    --委托执行
    obj.del()
    print("*********清空***********")
    --清空所有存储的函数
    obj.del = nil
    --清空过后得先等
    obj.del = fun
    --调用
    obj.del()
    
    print("*********Lua调用C# 事件相关知识点***********")
    local fun2 = function()
    	print("事件加的函数")
    end
    print("*********事件加函数***********")
    --事件加减函数  和 委托非常不一样
    --lua中使用C#事件 加函数 
    --有点类似使用成员方 冒号事件名("+", 函数变量)
    obj:eventAction("+", fun2)
    --最好最好不要这样写
    obj:eventAction("+", function()
    	print("事件加的匿名函数")
    end)
    
    obj:DoEvent()
    print("*********事件减函数***********")
    obj:eventAction("-", fun2)
    obj:DoEvent()
    
    print("*********事件清楚***********")
    --清事件 不能直接设空
    obj:ClaerEvent()
    obj:DoEvent()
    
  • 相关阅读:
    Maxwell的vbs脚本转matlab
    maxwell电机直观理解
    maxwell电机转矩扫描与使用MTPA策略绘制效率map图
    maxwell施加均匀外磁场
    maxwell的那些坑&小技巧
    maxwell主从边界
    MySql基础
    数据结构知识结构框架图
    第八章 多线程
    软件
  • 原文地址:https://www.cnblogs.com/unitysir/p/13896181.html
Copyright © 2011-2022 走看看