unity3d怎么使用lua更新一个场景

cherima006 2017-04-05 05:54:38
我使用slua,看sample里面的使用方法,也是需要先给Object绑定C#脚本再调用lua。但是C#脚本是没法更新出去的,这样的话热更新是怎么实现的?
...全文
423 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
地狱为王 2017-04-07
  • 打赏
  • 举报
回复
热更新是更新lua脚本和场景资源文件
仿unity3d写的一个小的游戏引擎 1.simple文件夹为 程序文件夹,内含simple.exe可执行文件 点击即可运行。 2.project文件夹为工程文件夹,内含obj格式的模型文件。 3.程序目前只支持obj格式,obj模型文件必须放在 _object文件夹内,纹理必须放在 _Texture文件夹内,才能被正确加载。(纹理必须是.bmp或 .tga)。 4.project 文件夹下的luascript 文件夹内含 lua控制脚本。 5.程序的菜单大多功能并没实现,还没有保存场景的功能。 6.必须是在不运行脚本的情况下编辑场景,否则看不到效果(按Esc键停止运行脚本)。 7.构造地形是等高图必须为bmp,纹理图需为tga。 程序操作: 模型拾取:(1) 可在scene 窗口内用鼠标单击(Inspector 会显示选中的模型的详细信息(包括名称,Transform属性,脚本) (2) 可在sceneShower 窗口内单击相应的名称,来选择对应的模型。 模型的复制: 按住shift键 在sceneShower窗口单击相应的名称,那么相应的模型就会复制。 模型的删除: 当模型处于选择状态时,按delete键 。 模型的移动和旋转,缩放和 unity3d 的操作 类似。 脚本的应用:在Inspector 内按 Add Control Script 可谓相应的节点加lua的控制脚本。 单击运行按钮,程序会运行脚本,错误信息会在Console窗口显示(严重错误会导致程序崩溃) (注意:要想结束脚本的运行,需按 Esc键 ) 对scene场景的常用操作和unity3d 类似。
1、博客介绍        博主也是刚接触XLua不久,本篇博客主要起记录和学习的作用,在本篇博文当中将介绍Xlua的配置和使用,对于萌新和小白来说应该还是有点用处的,大佬就绕道吧。 2、XLua环境配置 关于Xlua的配置在网上有很多文章,很简单,这里在阐述一下。 首先在github上下载XLua的源码工程 将源码Assets目录下的所有文件移动到你自己Unity工程Assets目录下 将源码内和Assets同级的Tools文件全部移动到你自己Unity工程目录下,和你的Assets保持同级 将本地Unity目录下的\Editor\Data\Managed下的Unity.Cecil.dll、Unity.Cecil.Mdb.dll、Unity.Cecil.Pdb.dll三个文件复制到项目中的\Assets\XLua\Src\Editor文件夹下 最后一步,在Unity内File--Bulid Settings-Player Settings-Other Settings-Scripting define Symbols 打开HOTFIX_ENABLE        输入后,敲击回车,待右下角的圆圈加载完后就可以了,然后测试是否成功,点开编辑器上XLua选项,点击Clear Generated Code ,然后点击Generated Code在右下角加载完成后,点击Hotfix inject in Editor。然后打开XLua的地8个例子HotfixTest,运行后点击左上角HotfixTest,输出变为Lua输出,既成功。   3、场景搭建和AB包的准备 这里不知道怎么制作打包工具的请跳转博主上一篇博客 传送门:https://blog.csdn.net/Mr_Sun88/article/details/86553465 (1)场景搭建 这里我们做一个非常简单的工程,一个Cube和一个Sphere,两个按钮 然后设置脚本Test.cs,并挂载在场景内,脚本给两个按钮绑定好方法,方法不做任何处理        这里注意了啊,如果想要使用XLua进行热更新,你想要在修改的类前面必须打上标签----->[Hotfix]<-------,在想要修改的方法前必须打上标签------->[LuaCallCSharp]<-------,这些工作都是你在发布前做好的,在你觉得需要热更的地方都打好标签。 (2)Lua脚本准备 下一步我们先用Lua把方法重写一下,点击按钮一破坏掉Cube,点击按钮二破坏掉Sphere。 4、基础网络环境的搭建 我们这里使用一个叫做NetBox的软件来模拟网络环境,该软件运行后效果如图 既该软件的同级目录的地址就是http://localhost/+.......,如此我们就可以模拟网络环境了,我们把刚打包好的AB包放在和NetBox的同级目录下。 下面我们写加载Lua的脚本 5、热更新的测试        现在我们可以先运行一下NetBox,然后运行场景进行测试,记得凡是修改了C#脚本后都需要点击上方编辑栏的XLua按钮,Clear一下代码,在Genetrate Code,在Hotfix Inject In Editor一下。 可以,我们在Lua中写的方法已经生效了,下面我们把场景打包再次测试。 同样没问题,这样我们就可以直接通过服务器上的AB包来修改我们的代码了。

2,538

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧