项目中引用了XLua,而Lua文件又是以txt文件结尾的,当修改系统的扩展脚本编辑器为vs后双击lua文件(xx.txt)默认也使用vs打开了,无提示的黑白文本编辑 昨办? -. 后来看到网上有写Unity的插件,想着应该也能判断后缀名然后调用指定的编辑器,果然可以.直接贴代码了(C#文件,只要建一个名为Editor的目录 -- 与路径无关,扔进去就行,Unity会自动编译的) using UnityEngine; using UnityEditor; using System; public…
设计一个简单的事件派发器,个人觉得最重要的一点就是如何保证事件派发过程中,添加或删除同类事件,不影响事件迭代顺序和结果,只要解决这一点,其它都好办. 为了使用pairs遍历函数,重写了pairs(lua 5.2以上版本不需要): stdext.lua local _ipairs = ipairs function ipairs(t) local mt = getmetatable(t) if mt and mt.__ipairs then return mt.__ipairs(t) end re…
在上一篇的基础上,可以测试下行为树的嵌套,所谓的行为树嵌套,就是在一棵行为树下的某一个分支,接入另一棵行为树. 以下面这棵行为树为例: TestBehaviorTree2.lua TestBehaviorTree2 = BTBehaviorTree:New(); local this = TestBehaviorTree2; this.name = "TestBehaviorTree2"; function this:New() local o = {}; setmetatable(o…
经过前面的文章,已经把行为树中的四种基本类型节点介绍了下.接下来可以整理一下,打印一下整棵行为树.注意点如下: 1.可以把BTBehaviorTree也当作一种节点,这样就可以方便地进行行为树嵌套了 2.可以在BTBehaviorTree中的SetStartTask.BTParentTask中的AddChild,即在设置节点和添加节点时对节点的信息进行打印 以下面这棵行为树为例: BTTask.lua BTTask = {}; local this = BTTask; function this…