toLua中Lua调用C#中的类

toLua中Lua调用C#:

[7]Lua脚本调用C#中的class

准备工作:打算在Lua脚本中使用Debug,使用lua调用C#脚本,需要绑定LuaState和自定义添加Debug

---
--- Generated by EmmyLua(https://github.com/EmmyLua)
--- Created by TonyChang.
--- DateTime: 2024/5/14 6:55
---
print("----------------------toLua中调用c#脚本-------------------------")


--调用Unity中的类
local object1 = UnityEngine.GameObject("object1")
local object2 = UnityEngine.GameObject("TonyChang")

GameObject  = UnityEngine.GameObject
local object3 = GameObject("object3")


--类中额静态对象可以使用 。 来调用

local TonyChang = GameObject.Find("TonyChang")
print(TonyChang.transform.position.x)

调用的C#自定义脚本

Lua中调用自定义脚本

--使用Unity的Debug来打印
Debug = UnityEngine.Debug
Debug.Log("----------Hello-----------")

Vector3 = UnityEngine.Vector3
--使用 :调用成员方法
TonyChang.transform:Translate(Vector3.right)
Debug.Log(TonyChang.transform.position.x)

--调用继承了MonoBehaviour的类
TonyChang:AddComponent(typeof(TestScripts.Test))

--调用没有继承MonoBehaviour的类
local JackStu = TestScripts.Student("Jack")
JackStu:Speak()

Lua中要调用的自定义类

using UnityEngine;

namespace TestScripts
{
    public class Student
    {
        private string _name;

        public Student(string name)
        {
            _name = name;
        }

        public void Speak()
        {
            Debug.Log("my name is " + _name);
        }
    }
    public class Test : MonoBehaviour
    {
        private void Awake()
        {
           Debug.Log("Test.cs is running");
        }
    }
}


运行结果:

调用自定的脚本需要在CustomSettings 新增,并生成warp 文件,才可以在lua中调用。
此处注意:在生成的Debug warp文件时候会报错产生,是因为wrap文件中使用指针,将相关的代码注释掉即可!

热门相关:女朋友的品味3   食人虫   清潭洞情侣   七仙女之勤奇梳化   双生记之误入总裁身