游戏蛮牛学习群(纯技术交流,不闲聊):539178957
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

首页   >   博客   >   0null0

Lua与C#(Unity)的交互 热度 2

个人分类: Lua | 2018-1-3 19:39
1 个评论 | 阅读 597 | 收藏 | 举报

要安装ulua插件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LuaInterface;

public class LuaText : MonoBehaviour {

	void Start () {

        //利用反射
        //相当于创建了一个lua解释器的实例
        //LuaState lua = new LuaState();

        //        string str = @"
        //		luanet.load_assembly('UnityEngine');
        //		GameObject  = luanet.import_type('UnityEngine.GameObject');
        //		ParticleSystem  = luanet.import_type('UnityEngine.ParticleSystem');
        //			local obj = GameObject('hello')
        //			obj:AddComponent(luanet.ctype(ParticleSystem))
        //";


        // lua.DoString(str); //相当于是执行此字符串中所包含的代码

        // string path = Application.streamingAssetsPath;
        // lua.DoFile(path+ " / MyLuaScripts.txt"); //相当于执行文件夹里的代码(ulua必须用.txt文件格式)


        //去反射模式(ulua里只能用Dostring方法)
        LuaScriptMgr lua = new LuaScriptMgr();
        lua.Start();
        string code = @"   GameObject = UnityEngine.GameObject
          
          num=24
         print('msg:',msg)
         myScript = MyScripts
            local newGameObj = GameObject('NewObj')
            newGameObj:AddComponent(myScript.GetClassType())

         f1=function (v)
         print('I am lua')
         return 'hello',6
         end

--Lua调用Unity(C#)的方法
  ParticleSystem = UnityEngine.ParticleSystem    --添加粒子系统进lua
  local obj =GameObject('Obj') --生成一个名字为Obj的GameObject
 ps= obj:AddComponent(ParticleSystem.GetClassType()) --给其添加组件,并返回其粒子系统所带的句柄
ps:Stop() --调用粒子系统停止的方法
         ";
        //放在DoString之前(C#交互lua的变量) 
        lua.lua["msg"] = "hello lua"; 
        lua.DoString(code);
        //lua交互C#变量
        double num = (double)lua.lua["num"];
        print(num);
        //C#调用lua里的方法
        LuaFunction lf = lua.lua.GetFunction("f1"); //获得方法
        object[] args= lf.Call(1);//执行方法
        Debug.Log(args[0]);
        Debug.Log(args[1]);
    }

}

2 0

评论 (1 个评论)

回复 GoingGoing 2018-1-4 02:18
感谢楼主

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册帐号

个人分类

标签

阅读排行

评论排行

推荐博客

最新博客

返回顶部