![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
游戏框架记录 + tolua
世界太疯狂
这个作者很懒,什么都没留下…
展开
-
lua protobuff 不支持嵌套修改protoc-gen-lua(记录)
protobuff解决方法如下:找到文件src/google/protobuf/message.cc 在文件的第一个#include之上的一行,加入 #include 继续运行make ,即成功通过。sudo python setup.py buildsudo python setup.py installerlang 数据库原创 2017-06-02 13:13:06 · 1722 阅读 · 0 评论 -
项目记录31--unity 简单分析LuaFramework_UGUI
抽空看看luaFramework_UGUI框架,对新人来说PurMVC确实是块硬骨头,对它的了解还是在一年前从coco转到unity时候寻找一个合适unity框架,用了几天硬啃才搞定,但是后来还是直接放弃直接使用,毕竟PurMvc属于超强解耦,里面的事件跳转个人不怎么喜欢,只是抽取了里面的Mediator做个解耦,填充自己的框架。顺便学学使用xmind做代码的思维导图,确实很好用。特别在追踪别原创 2016-03-22 21:11:12 · 4350 阅读 · 0 评论 -
项目记录29--unity-tolua框架 c#导出定时器lua
昨天回到宿舍想了想公司现在的项目很多时候都用到定时器,卡牌游戏在玩的时候就要计算时间,还要知道什么时候结束。之前写的定时器确实不怎么好,没有抽离出来,越想越不爽,这难道就是传说中的程序员的执着。那就重构下吧,所谓重构就是今晚你写完了功能需求,明天一睡醒来看到昨晚写的总感觉有点不爽,就开始......(哈哈,所以在动手写代码之前最好就是想好功能,最好可以动手在本只里面写写思路再动手,能抽离开来的尽量原创 2016-03-11 13:02:18 · 3501 阅读 · 0 评论 -
项目记录23--unity-tolua框架MediatorManager
我还存在!!!!!!!这个类是管理所有模块,没什么好说就是个单例,之后还需要UIManager,SceneManager,DataManager。。。。慢慢来,不是还要上班做死的嘛,坑爹。MediatorManager = class("MediatorManager")--构造方法function MediatorManager:ctor( )self.原创 2016-02-25 20:22:45 · 2013 阅读 · 0 评论 -
项目记录30--unity-tolua框架 回顾之前Dotween导入
项目到结尾了,各种忙。还要兼顾写技术文档(客户文档,服务端文档),原本打算搬到线上,突然改变了注意,要在本地部署写文档一步步写。服务端还是用的windowserver2012,数据库用sql2008,之前没用过只能扛着上安装系统迁移数据库,windowServer的IIS。。。(确实学到不少)。原本写文档部署服务端就够搞了,早上翻来老板突然话要接IOS内购,哎,疼啊没有mac。看了一天插件,还原创 2016-03-21 22:39:10 · 10253 阅读 · 4 评论 -
项目记录28--unity-tolua框架 lua使用协程
广州的这几天天气真心不怎么得,都是小雨,走在路上都有点粘糊糊,衣服都不干,还有味道。回到宿舍今天打算把tolua里面的例子再看一遍,好东西就要多看几遍,同时也动手抽下好用的东西出来自己试试用,封到自己框架里面。首先要抽的就是协程东西,估计很多时候都用到,做下记录,以后回头看也方便。1.看蒙哥tolua里面的例子。2.配置协程环境。配置环境 :简单使用 :原创 2016-03-10 09:34:09 · 3970 阅读 · 0 评论 -
项目记录22-- tolua基于lua框架事件派发
每天晚上抽点时间写一点点就一点点,以前不写博客但是现在,不为别的只是为了告诉别人我还存在。这几天在地铁上发现好多人都还在玩消除游戏,今天起码看到5个人,但是玩的版本都不一样。看来休闲游戏还是有市场的。(题外话)说到lua的事件派发,其实很简单就是一个table的事,这个是View里面自己的一个内置派发,所有view都继承它。还有就是我不是大神,只是任劳任怨的小兵,所有就简单化了。原创 2016-02-24 09:01:53 · 3581 阅读 · 0 评论 -
项目记录27--unity-tolua框架 网络端+protobuf
放假两天一直在搞lua protobuf ,之前运行tolua的例子失败了,回过头来看并不是例子的问题,而是自己没注意到些问题。顺便将网络部分给调节通,服务器还是使用熟悉点的erlang来,把之前的字节流改成protobuf,包头还是使用之前的定义,加密之类的没变化,就是数据部分变化就好。废话不多说(1).先按照protobuf-2.5.0https://github.com/REALDR原创 2016-03-08 09:36:23 · 7878 阅读 · 0 评论 -
项目记录26--unity-tolua框架 View03-UIManager.lua
做为程序猿要懂得如果保持健康,对电脑时间太长很容易眼花,得脖子病,腰都疼,这星期六日组团到康宁去了,哈哈。一个字“疼”!!!!废话不多少,把UIManager.lua个搞出来了。其实很简单,没有做什么二级界面,三级界面的想法现在,show就在最上层,基本怎么用看之前的function BasePanel:Show()BasePanel.super.Show(self)UIManag原创 2016-03-07 08:49:45 · 2339 阅读 · 0 评论 -
项目记录24--unity-tolua框架 View01---UIBase.lua
还存在,还存在......原本打算星期六日回佛山休息两天(广州太多人了),哎,还是逃不掉写想代码呀,以后坚决不能带电脑在身边,怎么都成习惯了。悲催呀。。。。。。不说其它的,之前Mediator(Module)写完了,回去想想View怎么写好,想法就是动态加载也符合lua框架,在Mediator(Module)里面管理本模块的VIew,先写个VIew子类BaseUI.lua,是继承于之前的事件系原创 2016-02-29 22:13:39 · 3217 阅读 · 1 评论 -
项目记录35--tolua 框架 场景管理SceneManager
每天写一点点学一点点updata自己的库,今天遇到一个问题就是资源跟新版本控制时候http下载路径真机bug。下记录下问题在ResUpdataMain.cs里面,解决办法是追踪资源跟新的代码,注意是lua文件下载的路径。今天修改了之前写的SceneMananger.lua,简化了,场景管理做的事比较少就是进入场景,退出时候清空。以后在场景跳转的时候做本场景的资源加载assetbundle,加载原创 2016-04-11 23:16:29 · 3106 阅读 · 0 评论 -
项目记录32--tolua build android错误tolua.lua no found
清明节过后发现都有段时间没看自己的框架,而且最近也打算把shader重新拿起来,之前学习shader都是看看博客总之比较乱吧,但是还是有了一定基础,趁着这段离职的空档期把shader重新系统学一遍。总结下要做的工作:1.把tolua自己的框架完善 。 2.把shader,图像学系统走一遍。不说别的今天打算之前build真机框架错误解决掉。就是在加载tolua的时候tolua.lua no fo原创 2016-04-09 11:17:20 · 3110 阅读 · 0 评论 -
protobuff今日之坑(tolua + erlang )int32数值大于127时候变很大
今天遇到一个奇葩问题,以前项目都没遇到过!就是在protobuff里面的int32位标志的数据0~127正常显示,只要大于127数据就变得很大!搞了整整一天才把这个问题稍微解决!只是稍微解决!记录下备注!其实就是把string改成byte[ ].客户端使用unity + tolua服务端使用erlang网络通信使用protobuff网络通信unity使用原生的c#编写,其它模块原创 2017-05-18 23:28:39 · 2486 阅读 · 1 评论 -
项目记录32--unity 导出dotween补充
1.需要修改ToluaExprot.cs给导出的类加头 static void SaveFile(string file)函数下面加入//加入dotween头 if (NeedDotweenNamespace()) { usb.AppendLine("using DG.Tweening;");原创 2016-03-30 12:52:36 · 2983 阅读 · 0 评论 -
项目记录38--tolua 股市网络爬虫软件解析json,html
找工作,找工作....不顺啊。停吧实现自己的一个小idea先,被比打击了,一个主城问到我slua和tolua,ulua的区别哪个比较好,优化性能上哪个比较好,好在哪里,打包有多大?我蒙圈了想想还真没真研究过,貌似自己也就把这些东西当做一个插件来用,就算是coco又或者unity一直都只是工具,没有很好的去研究底层的东西,悲剧了,只能根据自己的感觉说tolua好咯,必须的因为自己也在使用,性能嘛就说原创 2016-04-29 06:16:23 · 2699 阅读 · 0 评论 -
shader回顾02 --- 固定管线编程基础
固定管线编程是很老的一种shader编程,约束性比较高,但是还是必须要了解的,因为很多功能shader说真的不需要重头到尾部编写,但是必须要看得懂,可以修改。好不多说上代码。//fix function shader,逐步添加Shader "myShader/fixShader" { //3.属性 properties{ //3.外部颜色原创 2016-04-29 05:36:43 · 733 阅读 · 0 评论 -
项目记录34--tolua 框架 场景管理BaseScene
场景管理主要是资源的释放比较重要。不多说看代码。我设想是每个场景也算是一个模块通过事件通信。BaseScene主要做的事情是进入场景,退出场景(场景动画)释放资源。--为了扩展--[[ * 创建人 : 星华场景跳转设想:0.跳转场景1.加载本场景需要的资源2.释放场景资源 。。。]]local BaseScene = class("BaseScen原创 2016-04-10 22:56:49 · 1857 阅读 · 0 评论 -
项目记录37--tolua c#如何访问全局数据或者表
有人问c#访问全局数据或者表,这个其实很简单,但是也做下小记录,反正现在大把时间。第一次接触tolua必须先将例子看几遍(很重要),c#访问lua的全局数据或表可以看03-CallLuaFunction。也可以看下面的小例子。// /// summary> /// /summary> /// param name="msg">/param> //原创 2016-04-14 08:30:57 · 2188 阅读 · 0 评论 -
项目记录36--tolua 框架真机成功热跟新搞定 + 简单池子PrefabsPool.lua
今天终于把框架的所有调通了,build android也成功了,资源热跟新测试也成功,也就是手机不需要连接电脑自己修改UI,lua脚本逻辑真机直接就能看到作用的效果,太高兴了。总结下思路吧,有点犯困的节奏。1.首先你要做资源的跟新和版本的控制就必须使用一个外网,但是穷啊用不起外网,哈哈,就在本地模拟一个咯效果一一样。我使用的是MAMPPRO这个软件使用非常简单,就是设置映射的IP,把需要更新的原创 2016-04-13 00:14:25 · 2287 阅读 · 0 评论 -
项目记录33--tolua 框架 回顾架构和重构事件派发LNotice
这两天看到原来的框架,开始事件的派发用c#写,通过接口比如使用c#写的模块和lua的模块直接可以使用同个机制来通信sendMsg,但是发现luaManager里面的luaState本来就可以在c#和lua直接通信如果这样比较多余,效率也低。花点事件把之前的事件派发重构全用lua来写。先说下自己的设想,回想下这个架构就是基于Meditor(Module)也就是说没个功能都相当于一个模块独立互相不干涉原创 2016-04-09 11:56:12 · 1411 阅读 · 0 评论 -
项目记录20-- 原来c#框架mediator改lua--01
项目记录-- 原来c#框架mediator改lua--01最近没什么时间,公司项目就一直自己一个人抗着,下个星期就可以交付了,不是说项目有多难而是自己一个人说没压力那是骗人的。也算是过把独立开发的影了,这三个月的辛苦终于看到头了。希望真能把当时的承诺兑现吧,把团队建起来,不要再搞独立开发了,我希望的是稳定的开发。这都是题外话。很久没写记录了,最近考虑把之前搭建的c#版框架改成lua,以后就原创 2016-02-21 10:50:46 · 1414 阅读 · 0 评论 -
项目记录19--tolua封装自己的View层01记版录
最近在研究tolua,就是尽可能在原来的框架基础上加入lua做热更新,现在已经加入了View层,后面还要加入1.AssetBundle加载,2.TMyimer类(自己写一个时间管理),3.加入DoTween 4.在原本的TexturePacker打包的图集做成动画类 5.自动生产lua View文件这个很重要,我发现自己去建立lua文件很容易出错,用工具简单不容易出错。还在整理中....原创 2016-02-04 09:09:30 · 2467 阅读 · 0 评论 -
项目记录09-- BaseLoader加载AssetBundle
资源使用自己的规则打包成AssetBunlde之后肯定就是要读取,使用官方的例子修改就好,免得做重复性工作毕竟自己做,偷下懒。官方的例子已经做好了资源的关联。 EditorUtility.DisplayDialog("打包规则","1.开发开始将资源放倒Resoucrc下,打包将资源移开。\n2.需要打包的资源都放BundleResTemp下,打包规则超过如果3层就使用文件夹原创 2015-12-14 17:42:32 · 1216 阅读 · 0 评论 -
项目记录08-- 文件检查(打包失败)
今天打包AssetBundle时候发现有资源重名了。调用出错所以写个检查的简单工具在打包之前自动做检查。(感冒写得不好)/* * 创建时间:2015-8-10 星华 * 文件帮助类 */using UnityEngine;using System.Collections;using System.Collections.Generic;using System.原创 2015-12-13 14:26:57 · 893 阅读 · 0 评论 -
项目记录02--客unity,服erlang--框架net
重大:遇到问题:服务端接收完信息客户端打印:接收到协议返回 长度为: 0,接受Socket数据num=0:DisConnect(),开始不明白为什么会这样,难道服务端接收完数据会自动发送一个消息过来吗?erlang服务端async_recv 异步接收完所有数据会自动使用Shutdown方法关闭socket连接并且所有可用数据均已收到,客户端就是则 EndReceive 方法将立即完成并返回原创 2015-11-09 09:24:23 · 1893 阅读 · 0 评论 -
项目记录01--客unity,服erlang--框架net
客户端和服务端框架基本搭建完成,后面就是逐步完善。先从网络开始调试。注意事项--->客户端unity3d:1.net注意大小端问题。2.写通用的打包函数,通过事件通知接受到网络。3.自己制定协议时候注意规范方便以后写一个统一的自动生成协议工具,如果使用probuff就可以忽略大小端问题和写协议生成工具(自己定协议方便修改)。4.操作字节流时候多测试。服务端erlang:原创 2015-11-04 09:53:30 · 3328 阅读 · 0 评论 -
项目记录05--客unity,服erlang--数据管理与工具
在实际开发中常常是策划配置好数据表在告诉客户端更新配置。往往公司策划一般使用Excel做数据。我记得在做coco的时候第二个项目就是用excel配置数据,每次更新都比较麻烦开始,忍不了就学几天Python写了一个导表工具,但是那时候已经有点晚了,策划的表之前没规划好,格式比较不统一,只能慢慢写几个不一样工具满足,比较麻烦。所以项目开始之前就必须想好数据的管理,和配置的数据格式和策划沟通,严格按照规原创 2015-11-25 15:56:55 · 1265 阅读 · 0 评论 -
项目记录03--客unity,服erlang--框架net
%% 写入字符串 write_string(Bin,Str)-> L = byte_size(list_to_binary(Str)), %% 数据长度 >.错误写法,认为Str/binary会自动转换改: write_string(Bin,Str)-> StrBin = list_to_binary(Str), L = byte_size(原创 2015-11-09 15:35:04 · 1593 阅读 · 0 评论 -
项目记录05--客unity,服erlang--另外一种AssetBundle打包方式
昨天有人问我之前有没其他打包方式,随手写了个只是在之前的修改下 [MenuItem("GameTool/BuildAssets/Build_CSV")]public static void BuildCSV(){ //Path 先读取-->序列号ScriptableObject 将些不能打包的比如string等转化 -->生成asset AssetDataBase -原创 2015-11-24 11:05:22 · 1415 阅读 · 0 评论 -
项目记录04--客户端unity,服务端erlang--打包数据csv
开始前必须做好准备,就是决定数据究竟用什么类型好。xml,json,csv,tex.....最终决定使用csv,阅读性肯定没有其它好,好处就是比较小,打出包比较小。先写个打包工具:核心代码:[MenuItem("GameTool/BuildAssets/Build_CSV")]public static void BuildCSV(){ //Path 先读取-原创 2015-11-23 14:34:24 · 1211 阅读 · 0 评论 -
项目记录10---自动添加头注释工具(周任务)
一套完整属于自己的框架正在一步步完成,太好了。这周任务:1.搞一套热跟新到框架里面。2.版本控制。3.erlang的http实现版本更新。 下周:暂时:做一个类似NGUI的图集管理器可以读取TexturePack打包的图集。/**************************************************原创 2015-12-15 09:10:15 · 1065 阅读 · 1 评论 -
项目记录11---unity热更新探讨
unity热更新探讨1.整个安装包更新,客户端和服务端各种有规定一个版本号,客户端登录时候重服务端下载进行匹配,需要更新时候整个更新。(手游里面一般不这样做,每个版本更新都会丢失用户),如果真要使用就必须测试好游戏,保证没有bug,才更新上去。(算不上热更新,只能叫更新)2.资源的更新,不支持代码更新。同理在客户端和服务端约定好一个版本,里面包含用assetBundle打包生产的资原创 2015-12-16 13:48:10 · 2033 阅读 · 0 评论 -
项目记录17--DoTween回顾记录基础使用
周末,看这不想多写代码。就把之前的东西复习下。为了以后公司加入的新人能快点进行开发,把DoTween基础用法做了个小代码。using UnityEngine;using System.Collections;using UnityEngine.UI;using DG.Tweening; //加入头public class TempDoTween : MonoBehavio原创 2016-01-17 16:09:23 · 1542 阅读 · 0 评论 -
项目记录25--unity-tolua框架 View02---BasePanel.lua
还在,还在。。。。。今天没办法老失眠,困得要死,头晕晕的。没天晚上找点时间写点点,多了也不想学究竟是什么心理啊。写完看电影去。今天写两个算超完成了BaseUI.lua,UIManager.lua(完善中这个)local BasePanel = class("BasePanel",require("Base.BaseUI"))function BasePanel:ctor(p原创 2016-03-02 20:43:47 · 2019 阅读 · 0 评论 -
项目记录16---打包手机andrid,ios资源打包读取配置xml错误,中文读取错误
今天打包andriod,ios版本,把资源下载更新都已经做好,自己建了个web服务器将资源放到了服务器。下载读取配置xml时候出错,很奇怪在window下正常读取下载更新,就是手机不行。在手机上调试发现读取配置version.xml读取不到。将verson.xml改成version.conf。运行OK。貌似以前也遇到过。再来就是手机读取中文出错, 服务端使用的是GB2312,Unity3d发布原创 2016-01-15 09:05:43 · 1062 阅读 · 0 评论 -
项目记录07--客unity,服erlang--AStarPathing 寻路
AStarPathing:的2D使用:使用Grid Graph 注意:因为是2D所以Rotation一栏X:90 Collision testing的Mask选择碰撞的Layer ;Heigth Testing隐藏。 UGUI里面的物体都要叫上碰撞器,移动时候限制Z原创 2015-12-06 19:10:12 · 1397 阅读 · 0 评论 -
项目记录15--热更新ulua加入框架测试和.android热更新脚本
这几天一直在忙公司的一个外包项目,也挺累的。却是头疼到处乱挂脚本,没有任何的悬念。没办法外包就是如此。总之就是坑爹的节奏。真想全删了重写。可惜时间不够,再过几天就要出版本。抽点时间出来研究下ulau,怎么说呢,本来写的框架就把热更新考虑上去了可以说是留个位置吧,就是不在组件上挂脚本,这个和ulua实现热更新有点像。已经测试过资源的更新,随便改变里面的组件添加只要不是改变###规范的随便,算是一原创 2016-01-07 09:30:00 · 2153 阅读 · 0 评论 -
项目记录18--erlang服务器登录注册,大体框架
最近忙这工作上的项目,整个公司就自己一个搞游戏的,负责整个项目,为了就是入职时候一个承诺会开游戏部。客户端代码因为是个外包半成品,入职一个月终于把第一个版本弄出来了,bug都修改差不多,该换的UI,增加的特效都搞了,连工具都写,服务端web资源下载都要搞。第一个版本出来后还是不错的。后面的需求才是坑啊,要添加功能但是服务端呢?难道我连服务端也要搞吗?确实忍不了,真想把整个客户端,服务器重写。晚上回原创 2016-01-23 13:26:47 · 1997 阅读 · 0 评论 -
项目记录13--版本更新完成
两天时间终于把版本更新搞出来了,太高兴了。已经支持Android的热跟新了。 思路就是:在本地使用自己编写的自动生成版本工具生成version,新的版本放到服务器上。本地的版本xml和服务器的对比,将md5改变的找出来下载,里面要注意需要对大版本重新安装,还有检查网络,写入本地(沙盒),细节不少。 /// summary> /// 加载本地xml回调 /// sum原创 2015-12-21 23:16:26 · 1730 阅读 · 0 评论 -
项目记录12---http做版本检查资源更新
需要做版本检查不必要时用TCP连接,使用http.那么有两种选择方案1.使用erlang 的cowboy,游戏里面的逻辑是使用erlang来写的这样做可以统一。2.使用nginx ,如果只是做资源的更新这个可以是个很好的选择,使用简单快捷,还有个好处就是开发时候做调试搭建很快。自己试了两种。1.erlang 的cowboy. 在win7下面需要安装rebar,之前已经安装好。直接编译会原创 2015-12-18 09:13:57 · 1339 阅读 · 0 评论