当前位置: 首页 > news >正文

xLua_003 Lua访问C#

1、new C# 对象(创建游戏物体)

LuaCallCSharp.cs

using UnityEngine;
using XLua;

public class LuaCallCSharp : MonoBehaviour
{
    public LuaEnv env = null;
    void Start()
    {
        LuaEnv env = new LuaEnv();
        env.DoString("require'LuaCallCSharp'");

    }
    private void OnDisable()
    {
        if(env != null)
        {
            env.Dispose();
            env = null;
        }
    }
}

LuaCallCSharp.lua.txt

CS.UnityEngine.GameObject()

运行结果:在unity中创建一个游戏对象,如果添加参数

例:CS.UnityEngine.GameObject("new by lua")

注意:

  • lua里头没有new关键字;
  • 所有C#相关的都放到CS下,包括构造函数,静态成员属性、方法;

2、访问C#静态属性的方法

LuaCallCSharp.lua.txt

print(CS.UnityEngine.Time.deltaTime)

CS.UnityEngine.Time.timeScale=0.5

--如果其他不对camera进行访问 用local为局部变量
local camera = CS.UnityEngine.GameObject.Find("Main Camera")
camera.name="updata by lua"

 运行结果:

节约性能方法:(对于经常访问的类)

先引用局部变量再引用

LuaCallCSharp.lua.txt

local gameobject = CS.UnityEngine.GameObject

local camera = gameobject.Find("Main Camera")
camera.name="updata by lua"

local light = gameobject.Find("Directional Light")
light.name="updata by lua_1"

运行结果: 

3、访问C#成员属性的方法

调用成员属性时,使用  : 进行调用

LuaCallCSharp.lua.txt

local gameobject = CS.UnityEngine.GameObject
local camera = gameobject.Find("Main Camera")
--使用 : 直接将自身camera传入作为第一个参数
--相当于  local cameracom = camera.GetComponent(camera,"Camera") 
local cameracom = camera:GetComponent("Camera")
gameobject.Destroy(cameracom)   

输出结果:

相关文章:

  • 正确理解虚基类
  • Umi-OCR 实践教程:离线、免费、高效的图像文字识别工具
  • 基于STC89C52的DS1621温度检测系统
  • 【python3】:轻松实现点阵数据 转DXF格式
  • ROS2 常用命令详解
  • 第37周:文献阅读
  • java查询es超过10000条数据
  • 内容中台实施效能跃迁方法论
  • Python实现ONNXRuntime推理YOLOv11模型
  • AI 如何重塑数据湖的未来
  • git原理与常用命令及其使用
  • 数学建模:MATLAB卷积神经网络
  • 【嵌入式学习】触发器 - ADC - DAC
  • 微信 MMTLS 协议详解(五):加密实现
  • 【嵌入式硬件测试之道连载之第三章:核心处理器的选型与应用】
  • IS-IS原理与配置
  • Nexus L2 L3基本配置
  • 【Java SE】抽象类/方法、模板设计模式
  • 【递归,搜索与回溯算法篇】- 名词解释
  • 从X光片生成合成计算机断层扫描(CT)样成像的策略:一项范围审查|文献速递-医学影像人工智能进展
  • 警方通报男子地铁上拍视频致乘客恐慌受伤:列车运行一度延误,已行拘
  • 2025年上海市模范集体、劳动模范和先进工作者名单揭晓
  • 深圳两家会所涉卖淫嫖娼各被罚7万元逾期未缴,警方发催告书
  • 印度杰纳布河上游两座水电站均已重新开闸
  • 硅料巨亏后弘元绿能割肉求生:逾12亿元内蒙古公司股权转让协鑫
  • 巴基斯坦称约50名印度士兵在克什米尔实控线丧生