SLua踩坑笔记:import "UnityEngine"
来源:互联网 发布:java通过ftp上传文件 编辑:程序博客网 时间:2024/06/05 19:52
在向Unity项目中导入SLua框架时,遇到
[string "..."]:4: expect UnityEngine is type table
stack traceback:
[C]: in function 'assert'
[string "..."]:4: in function 'import'
main:2: in main chunk
网上搜到的教程都差不多,在使用
import "UnityEngine"
的时候,报了如上错误。
从字面上的意思看,是Lua引擎不把UnityEngine看做一个table,而import需要一个table
第一步怀疑是没有将Unity的东西make成Lua可以识别的。
点了N次all-make,还是没用。
看官方demo,发现在Slua-Example-Main场景中使用了import,运行,他没有报错!
原来,他在运行lua脚本之前进行了一次init,代码如下:
using UnityEngine;
using System.Collections;
using SLua;
using UnityEngine.UI;
using System.Collections.Generic;
public class Main : MonoBehaviour
{
LuaSvr l;
public Text logText;
int progress=0;
// Use this for initialization
void Start()
{
#if UNITY_5
Application.logMessageReceived += this.log;
#else
Application.RegisterLogCallback(this.log);
#endif
l = new LuaSvr();
l.init(tick,complete,LuaSvrFlag.LSF_BASIC|LuaSvrFlag.LSF_EXTLIB);
}
void log(string cond, string trace, LogType lt)
{
logText.text += (cond + "\n");
}
//记录初始化进度,用progress变量来记录
void tick(int p)
{
progress = p;
}
//完成之后要做的事
//注意:这里是初始化完成之后才读取lua脚本,而我们之前是直接读取,所以报错了
void complete()
{
l.start("main");
object o = l.luaState.getFunction("foo").call(1, 2, 3);
object[] array = (object[])o;
for (int n = 0; n < array.Length; n++)
Debug.Log(array[n]);
string s = (string)l.luaState.getFunction("str").call(new object[0]);
Debug.Log(s);
}
void OnGUI()
{
//更新初始化的进度条
if(progress!=100)
GUI.Label(new Rect(0, 0, 100, 50), string.Format("Loading {0}%", progress));
}
}
简化过之后:
void InitLua()
{
lua_svr = new LuaSvr();
lua_svr.init(null, complete, LuaSvrFlag.LSF_BASIC | LuaSvrFlag.LSF_EXTLIB);
}
void complete()
{
lua_svr.start("hello");
}
我的lua脚本hello:
import "UnityEngine"
function test()
print("Hello LuaSvr...")
end
test()
成功
1 0
- SLua踩坑笔记:import "UnityEngine"
- SLua踩坑指南:导出APK/导出AssetsBundle报错
- UnityEngine.Input
- UnityEngine.SystemInfo
- UnityEngine.Time
- import学习笔记
- python笔记-import用法
- python Import 学习笔记
- Python学习笔记-import
- SLua 优化初始化速度
- slua与ulua对比
- slua学习记录(一)
- Slua的服务器端导出
- Unity SLua+FairyGUI
- python学习笔记1.import
- UnityEngine.Quaternion.LookRotation详解
- UnityEngine.Quaternion.LookRotation详解
- IBeginDragHandlerinterface in UnityEngine.EventSystems
- 页面优化的方法
- 类class
- 自定义控件之重写GridView
- 项目引入bottom-navigation-bar values-v24 找不到资源问题
- 闭包讲解
- SLua踩坑笔记:import "UnityEngine"
- 什么时候定义静态成员呢?
- php安全编程&python测试实例编写
- 抽象工厂模式(对象创建)
- Tomcat集群配置学习篇-----分布式应用
- 函数适配器2——成员函数适配器
- 题目1172:哈夫曼树
- BeanUtils工具简介
- mysql(1-2)