【XLua】019-Lua訪問C#:重載方法調(diào)用


重載方法調(diào)用

  • 1、Lua腳本
local DrivenClass = CS.DrivenClass
local testobj = DrivenClass()

--重載方法調(diào)用
 testobj:TestFunc(100)
 testobj:TestFunc('hello')

  • 2、C#腳本
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;

[LuaCallCSharp]
public class BaseClass
{
    
}

public struct Param1//結(jié)構(gòu)體參數(shù)
{
    public int x;
    public string y;
}

[LuaCallCSharp]
public class DrivenClass : BaseClass
{
   //重載方法
    public void TestFunc(int i)
    {
        Debug.Log("TestFunc(int i):參數(shù)為int類型");
    }

    public void TestFunc(string i)
    {
        Debug.Log("TestFunc(string i):參數(shù)為string類型");
    }
}


public class _005_LuaCallCSharp : MonoBehaviour
 {

    private LuaEnv env;
    
    void Start ()
    {
        env = new LuaEnv();
        env.DoString("require 'LuaCallCSharp'");
    }
    

    private void Update()
    {
        if(env!=null)
        {
            env.Tick();
        }
    }

    private void OnDestroy()
    {
        env.Dispose();
    }

}

運(yùn)行結(jié)果:


img.jpg

注意:

1、直接通過不同的參數(shù)類型進(jìn)行重載函數(shù)的訪問,例如:
testobj:TestFunc(100)
testobj:TestFunc('hello')
將分別訪問整數(shù)參數(shù)的TestFunc和字符串參數(shù)的TestFunc。

2、xlua只一定程度上支持重載函數(shù)的調(diào)用,因為lua的類型遠(yuǎn)遠(yuǎn)不如C#豐富,存在一對多的情況,比如C#的int,float,double都對應(yīng)于lua的number,上面的例子中TestFunc如果有這些重載參數(shù),第一行將無法區(qū)分開來,只能調(diào)用到其中一個(生成代碼中排前面的那個)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,243評論 0 38
  • 將下列代碼掛載到任何一個GameObject上,這樣就能在Unity中加載并執(zhí)行Resources/Lua文件夾下...
    BlauHimmel閱讀 23,557評論 3 18
  • 雖然計算機(jī)可以做很多事情,但它不會思考,它需要接受系統(tǒng)化的指令來工作。大部分用戶通過應(yīng)用程序為計算機(jī)指派任務(wù),軟件...
    JunChow520閱讀 7,262評論 0 4
  • 講到朋友就會聯(lián)想到兄弟!如今“朋友”已經(jīng)成為社交圈中認(rèn)識的人就是朋友。 淺顯到 同學(xué)、 同事、 甚至剛剛結(jié)交的...
    嘿你的益達(dá)_d61a閱讀 223評論 0 2
  • 我叫張嫻雅曾經(jīng)是一位小學(xué)老師,現(xiàn)在是全職太太。我有一個有份穩(wěn)定工作的老公,我有一個正在上五年級的女兒。 周末當(dāng)我把...
    微微一笑很傾墻閱讀 740評論 0 2

友情鏈接更多精彩內(nèi)容