xLua Lua访问C#属性和方法(六)

Lua文件中要调用C#的类,需要再前面加上CS.

例如要使用DateTime,就需要通过CS.加上DateTime类的命名空间System
就可以使用DateTime下面的函数和属性

CS.System.DateTime
print(CS.System.DateTime.Now)

如果要使用GameObject也是一样的,需要加上CS.GameObject的命名空间UnityEngine

CS.UnityEngine.GameObject
camera = CS.UnityEngine.GameObject.Find("Main Camera")

自定义的C#类,使用方式也是一样的

using UnityEngine;

public class Test : MonoBehaviour
{
    public static void TestAction()
    {
        print(111);
    } 
}

Test类,我们没有加入命名空间,那么使用的时候,只用**CS.**就可以了

local test = CS.Test
test.TestAction()

在这里插入图片描述

如何再lua中,调用C# new GameObject呢

lua中是没有new 关键字的,所以我们只需要这样写就可以了

CS.UnityEngine.GameObject()

如果是重载的构造参数

CS.UnityEngine.GameObject("hello world")

Tips: 经常访问的类,可以再lua中用局部变量先引用,可以减少敲代码的时间,也能提高性能

如何访问对象身上的组件呢

注意: 在使用对象身上的成员方法要用冒号 “:”,使用冒号会自动将当前对象作为第一个参数传递过去,使用点"."的话,需要手动将当前对象设置第一个参数

--Lua
local GameObject= CS.UnityEngine.GameObject

camera = GameObject.Find("Main Camera")
camera.name="update by lua"--修改Camera的名字

--通过对象调用它的成员方法使用:
cameraCom=camera:GetComponent("Camera")--获得Camera对象上的Camera组件
--cameraCom.enabled=false

--如果要销毁
GameObject.Destroy(camera)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贪小心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值