
Unity开发工具
文章平均质量分 58
tianmao111
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【原创】Unity T4M 中文讲解
现在在u3d圈里流行了一种地形转换器(或者叫编辑器吧),但是经查阅之后,似乎还没有中文教程,又看到网上不少人在求中文教程,正巧公司内部也需要研究这块,所以我想顺便做一个尝试,顺便写个中文教程吧,英文不足之处请指出,好废话不多说,直接上菜。T4M是什么?为什么要用它?它是一个地形(Terrain)工具。它是一个Unity地形的替代工具,用于所有被3D开发工具(Maya,Ear翻译 2015-06-13 15:35:01 · 39313 阅读 · 15 评论 -
ToLua学习笔记,使用枚举Enum
在CustomSettings.cs中,添加 _GT(typeof(PrimitiveType)), 到customTypeList中:编写以下脚本再main.lua中:运行Unity,结果如下:原创 2017-06-26 17:28:31 · 3379 阅读 · 0 评论 -
ToLua学习笔记,给游戏对象添加脚本
编写脚本如下:如果想知道GameObject内可以使用的方法,则需要查看它对应的包装文件UnityEngine_GameObjectWrap.cs进入到这个方法:查看参数,说明需要一个GameObject类型的对象和一个Type类型的参数运行结果如下:原创 2017-06-27 14:16:23 · 1560 阅读 · 0 评论 -
ToLua学习笔记,创建自定义矩阵类
我突然想到,框架里并没有提供Matrix4x4这个重要的类,所以我参考Quaternion.lua写了一个Matrix4X4.luaMatrix4X4类内有16个公有的字段,而unity中的Matrix4X4类既可以通过.mXX的方式访问属性,也可以通过索引器Matrix4X4[m][n]的方式来访问,但lua中并没有索引器,但是,我们可以通过表嵌套实现二维数组,但是一旦设计成嵌套表,那1原创 2017-06-30 17:25:17 · 1451 阅读 · 1 评论 -
ToLua学习笔记,通信(一)
ToLua框架里提供了常用的通信工具,包括Socket通信类,cjson库,protobuf库,sproto库。其中所有协议都需要依赖于Socket通信。但框架原本的SocketClient类有以下几个缺点:1:接收消息拆包粘包写的效率不高2:Socket类和NetworkManager类互相引用,封装的不够好3:经过测试,收消息函数无响应对此需要对SocketCl原创 2017-07-29 22:41:03 · 1949 阅读 · 0 评论 -
ToLua学习笔记,通信(二)
json是一种常用的协议格式,ToLua内置了cjson库,以下是测试:结果如下:之后就可以通过ByteBuffer读取字符串收发消息需要注意的是Tank表中不允许出现函数,否则会报解析错误原创 2017-07-30 12:12:22 · 545 阅读 · 0 评论 -
ToLua学习笔记,通信(三)
protobuf是谷歌创造的最给力的一种协议格式,它的传输效率高,使用方便。在lua中使用protobuf的基本步骤如下:1:编写.proto协议文件2:通过批处理命令导出不同语言对应的消息包(类文件)protobuf可以导出c++ java c# 等等很多种语言的消息包,但是不包括Lua语言,为此我们需要一个辅助工具protoc-gen-lua,此工具的目的是从.proto文件导出.原创 2017-07-30 14:29:47 · 1723 阅读 · 1 评论 -
ToLua学习笔记,增量热更新
增量热更新是利用2进制文件对比工具把新旧资源的2进制压缩文件进行对比,产生差异文件,更新时只更新差异文件的方式。这种方式下载的文件体积比下载整个文件降低最高98.7%,由于代码细节过多,我只列出流程:.delta文件是差异文件,组合文件需要2进制文件对比工具原创 2017-08-31 21:47:16 · 1017 阅读 · 1 评论 -
ToLua学习笔记,运行bundle中的lua脚本
ToLua框架支持直接读取运行lua脚本文件,也支持读取打包到.unity3d中的lua脚本。另外ToLua还支持字节码方式读取脚本。打包工具类Packager.cs中对脚本的打包,选择如下打包方式:注意此部分经过我的修改。然后它会调用下边部分:上边选择了lua字节码方式,其实区别只是EncodeLuaFile函数会把lua脚本编译成可被luajit执行的格式文原创 2017-08-31 17:50:03 · 3114 阅读 · 0 评论 -
ToLua学习笔记,创建一个游戏对象
添加代码到main.lua脚本中:执行结果:注意AudioSource类型已经在CustomSettings.cs中注册过了,如果想创建其他类型,请注册对应类型到customTypeList列表中原创 2017-06-26 17:43:20 · 786 阅读 · 0 评论 -
ToLua学习笔记,使用委托,监听UGUI组件事件
首先在Hierarchy面板创建一个Button:我需要把这个Button对象传递到lua脚本中,以便访问,所以创建UIManager脚本如上图。内容如下:UIManager在运行时会自动获取Button的引用,然后在LuaHelper中添加如下代码:只是为了再lua脚本中通过LuaHelper访问到UI管理器。然后参考宏哥的博客文章一,文章二,添加EventTrigg原创 2017-06-29 17:30:52 · 3527 阅读 · 0 评论 -
Unity自定义Inspector时设置指定的值后运行无效果
今天为了项目需要,自定义Inspector菜单,如图下边2个菜单选择每当我上边的车选择M40202031时,下边设置的值到了运行中就起作用,但是选择其他车辆的时候,下边设置的值到了运行中怎么也不起效果。实在是让我抓狂按说Inspector的编辑器重写怎么可能跟我车辆的选择有关系呢,完全不搭嘎。需要保存的脚本属性前已经加了 [HideInInspector] [Seri原创 2016-08-24 19:22:19 · 3924 阅读 · 0 评论 -
Unity地图分割组合时出现接缝的处理办法
最近公司需要,需要做一个能动态加载格子的地图,如下图所示:为此我用c#做了个工具来切割图片生成的图片如下:分割后的图块导入到unity中,放入quad上的材质中,然后再把这些quad按照图片原来的相对位置进行拼接,此时会出现缝隙,如下所示:如果此时放大镜头,会发现,原来每个quad的边缘都出现了特殊颜色的边。然而观察切割出来的图片原创 2017-01-23 09:26:29 · 11891 阅读 · 0 评论 -
Unity调用c++动态链接库注意事项
整理一下Unity中使用c++动态链接库需要注意的地方Unity通过ndk调用java,java通过jni调用c++ .so1:Jni的.so是独立的,还是依赖其他.so库或静态库?答:都可以,但具体的.so拷贝到unity中后,是否还能正常调用,有待测试。 2:C++中jni与java回调函数,这里只举例静态函数调用先保存回调函数的引用,具原创 2017-03-21 15:17:53 · 4354 阅读 · 2 评论 -
ToLua学习笔记,使用Update方法(四)
每次我添加一个lua脚本,我都需要编写重复的New函数么?可以这样,修改LuaComponent.cs代码如下:添加LuaObject.lua脚本,内容如下:此时在这样调用:这是通过LuaComponent的New函数查找全局的LuaObject里的New函数,来创建不同的lua表当然也可以直接使用下边注释掉的那一行代码,完全不需要通过LuaComponent脚本原创 2017-06-29 12:09:00 · 883 阅读 · 0 评论 -
ToLua学习笔记,使用Update方法(三)
参考上一篇文章,给脚本LuaComponent.cs增加如下内容:并且注册:修改Tank.lua脚本,内容如下:在main.lua脚本中修改内容如下:运行Unity结果如下:原创 2017-06-28 15:38:48 · 1124 阅读 · 0 评论 -
ToLua学习笔记,使用Update方法(一)
tolua框架提供了UpdateBeat,FixedUpdateBeat,LaterUpdateBeat用来做刷新:编写如下脚本:在这里,创建了一个游戏对象,然后在Update中处理键盘输入,对游戏对象做不同操作原创 2017-06-27 14:30:33 · 6910 阅读 · 2 评论 -
ToLua学习笔记,使用Update方法(二)
参考罗培雨的博客,添加脚本LuaComponent.cs,内容如下:并且注册:添加Tank.lua脚本,内容如下:在main.lua脚本中修改内容如下:运行Unity结果如下:原创 2017-06-28 15:30:40 · 2350 阅读 · 0 评论 -
ToLua学习笔记,获取全局lua表,局部lua表
编写以下脚本,我声明了一个全局变量(表)LObject:注意一定要return在c#中,通过luaState来获取表:获取局部lua表:然后注意在require时,参数必须是文件的路径,是指你编写的lua脚本相对于搜索目录的相对路径,比如搜索目录是Lua,你的lua文件在Lua目录下,那么就需要写成如下格式:原创 2017-06-29 11:52:15 · 2088 阅读 · 0 评论 -
代码创建动画状态机
Unity的动画状态机有以下一些特性:1:动画状态机是无法直接获取到指定名称的状态的,这也就意味着,你不能加载一个已有的状态机,然后对其中的状态或状态连线做修改,只能是完全重新创建整个状态机。2:在子状态机中,无法手动创建(Up)Base Layer节点到其他节点的连线。3:假设有子状态机,play_anim和Jump_Fall 如下图:当只有AnyState到play_anim的连线,没有其他状原创 2018-01-19 09:54:26 · 778 阅读 · 0 评论