uLua学习之读取外部Lua脚本(四)

时间:2023-03-09 03:33:47
uLua学习之读取外部Lua脚本(四)

前言

  上节说到了Lua脚本与unity3d中C#脚本的数据交互,但是我感觉上节中的数理方式不太好,因为我们是把Lua脚本以字符串形式粘贴到C#脚本中的,如果读取配置数据都这样做的话,那就太可怕了。想想看,一个C#脚本中有一个长长的字符串,十分不方便,也非常混乱。那么有没有更好的处理方式呢?答案是肯定的。这节我们就来看看如何读取外部的Lua脚本吧,这样的话,Lua和C#就是完全分开的,便于维护和理解。

  在宿主脚本中(C#中)的处理方式是确定的,主要是如何来获取外部的Lua脚本,以下会详细说明读取外部Lua脚本的三种方式。

静态赋值方式

  这是十分方便的方式,也就是符合unity3d特色的拖动赋值。将我们需要的Lua脚本后缀名改为"txt",在C#中用一个“TextAsset”类型的变量来接收它,然后直接可以在属性面板中拖动赋值。C#脚本如下所示:

uLua学习之读取外部Lua脚本(四)

Lua脚本如下所示:

uLua学习之读取外部Lua脚本(四)

面板赋值情况:

uLua学习之读取外部Lua脚本(四)

运行结果(三种方式的运行结果都是一样的):

uLua学习之读取外部Lua脚本(四)

资源加载方式

将脚本文件放入资源文件夹中,用unity3d中的API方法来调用,有以下两种类似的方法,需要注意的是书写资源路径时后缀名的保留与否。

1、将文本形式的Lua脚本放在Resources文件夹下,用Load方式来加载(不需要后缀名):

uLua学习之读取外部Lua脚本(四)

2、将脚本放入资源目录下的任一文件夹中,通过路径来访问得到(需要后缀名):

uLua学习之读取外部Lua脚本(四)

网络加载方式

  以上两种方式说的都是在本地外部加载脚本,现在来看看如何在网络上加载Lua脚本。我将上面同样的Lua脚本传到了个人网站的空间中(点我查看)。然后用下面的方式来加载网络上的Lua脚本资源:

uLua学习之读取外部Lua脚本(四)

结束语

  今天就先到这里吧。如果有什么错误纰漏之处,希望诸位大神能够批评指正,我将十分感激。有什么建议,欢迎访问我的个人网站(http://chunqiuyiyu.sinaapp.com/),我们共同学习进步。下篇文章再见!