摘要: 经过一段时间的考虑,我决定开通个人公众号。在这个不确定的世界里,我越来越感觉到编程、英语、写作是未来生存三项十分重要的技能,而我发现我在写作上面还需要很多的锻炼,而公众号正好也是一个历练自己的机会。 公众号的名字叫:布衣张少。我本是布衣的命,奈何有颗少爷的心,不求闻达于大V,只求心中的那片宁静。 博阅读全文
posted @ 2017-02-24 17:39 meteoric_cry 阅读(65) 评论(0) 编辑
摘要: 今天早上听说一件事情让我觉得很诡异的事情:公司线上的一款游戏,加载一份配置资源后,内存涨了几十M,然后内存再也下不来了。因为好奇,所以要来了最大的一个配置文件(4.5M,去除空格与换行后的大小),进行测试。最终发现,内存其实是可以被释放的,不过需要注意以下的规则。 同时,为了证明luac 与 luajit 表现一致,我同时也使用了 luajit 进行了测试。 前往下载页面 http://lua...阅读全文
posted @ 2017-11-14 22:27 meteoric_cry 阅读(7) 评论(0) 编辑
摘要: 之前的文章《wireshark解析自定义的protobuf协议》 ,当时只监听了一个端口,而如果游戏同时有二个 socket 连接,比如一个是网关另外一个是其它的,怎么办呢? for i,port in ipairs(tcp_port) do tcp_port_table:add(port, m_MeteoricProto) end 参考链接:https://wiki.wires...阅读全文
posted @ 2017-11-07 21:00 meteoric_cry 阅读(1) 评论(0) 编辑
摘要: Unity中的输入管理器由Input类进行操控。官方文档地址:https://docs.unity3d.com/ScriptReference/Input.html 中文翻译的话可以在这里:http://www.ceeger.com/Script/Input/Input.html 这里只说几个易混淆的点。 既然已经有GetKey、GetKeyDown、GetKeyUp 以及 GetMouseB...阅读全文
posted @ 2017-11-03 16:56 meteoric_cry 阅读(8) 评论(0) 编辑
摘要: 一款游戏在研发初期就需要考虑多语言的问题,否则后期在进行多国语言版本时就面临着巨大的成本。鉴于之前页游的经验,其它同事设计出读取Excel的方式来管理所有的文字。但是我在使用中发现很致使的一个问题,当多人编辑一个Excel时,冲突了就很麻烦,解决起来的成本还蛮高的。 之后我想了一些办法,例如搭建一个web站点,将所有的字符串 Key、Value保存到数据库中,避免冲突,方便去查询。但感觉还是太...阅读全文
posted @ 2017-11-02 14:20 meteoric_cry 阅读(13) 评论(0) 编辑
摘要: JavaScript中的定时器与延时器,分别是 setInterval、setTimeout,对应的清理函数是:clearInterval、clearTimeout。 而在Unity中,则分别是:Invoke、InvokeRepeating和取消延迟调用 CancelInvoke 延迟调用 void Invoke(string methodName, float time); 重复延迟调...阅读全文
posted @ 2017-11-02 14:01 meteoric_cry 阅读(22) 评论(0) 编辑
摘要: 最近为美术编写一个Unity编辑器的扩展,主要为了减轻美术在修改预制对象时的机械化操作的繁琐和出错。具体实现的几个功能: 1、删除指定组件; 2、复制、粘贴指定的组件; 3、重新关联新的属性; 4、重新保存预制对象; 一、删除指定类型的组件 public static void RemoveComponentHandler(GameObject gameObject, Type compone...阅读全文
posted @ 2017-10-23 17:26 meteoric_cry 阅读(33) 评论(0) 编辑
摘要: 正常情况下都会显示的,如果没有显示,尝试以下几种方案: 1)缩小模型看一看 2)旋转灯光试试,看是否有阴影 3)检查阴影设置 菜单栏Edit –> Project Settings –> Quality 4)检查灯光自身的属性设置,包括强度和阴影类型阅读全文
posted @ 2017-10-11 15:42 meteoric_cry 阅读(14) 评论(0) 编辑
摘要: .asset一般用来存储一些配置,比如SDK初始化的相关参数。 using System.Collections.Generic; using UnityEngine; namespace XXX { [CreateAssetMenu(fileName="xxx", menuName="xxx")] public class CommonConfig : ScriptableOb...阅读全文
posted @ 2017-09-27 19:12 meteoric_cry 阅读(8) 评论(0) 编辑
摘要: Unity 5.0开始增加了RuntimeInitializeOnLoadMethodAttribute,这样就很方便在游戏初始化之前做一些额外的初始化工作,比如:Bulgy参数设置、SDK初始等工作。 先来看一下它的生命周期 sing UnityEngine; public class ExampleClass : MonoBehaviour { private void Awak...阅读全文
posted @ 2017-09-27 15:49 meteoric_cry 阅读(24) 评论(0) 编辑
摘要: InitializeOnLoad 属性应用的对象是 静态构造函数,它可以保证在编辑器启动的时候调用此函数。根据这个特性,可以在编辑器中设置定期的回调(帧更新),来实现类似watchFile的功能。这里借助了EditorApplication类中的 update 委托,在编辑器运行时,它将每秒调用多次。 using UnityEditor; using UnityEngine; [Initiali...阅读全文
posted @ 2017-09-27 15:19 meteoric_cry 阅读(10) 评论(0) 编辑
摘要: DLL —— Dynamic Link Library(动态链接库文件),这里以Window平台为例。 Unity支持的两种语言生成的DLL库(C++、C#),这里以C#为例,C++网上可以搜索很详细的资料。 1) 添加引用关系 如果有对UnityEngine、UnityEditor的引用,需要先添加引用关系。 路径通常位于Unity安装目录下的Editor/Data/Managed路径...阅读全文
posted @ 2017-09-27 14:47 meteoric_cry 阅读(20) 评论(0) 编辑
摘要: 通过我们使用Unity开发游戏,是在PC/Mac上。而一个游戏通常也会有很多的场景,比如A、B、C、D三个场景,正常流程下的执行顺序是 A –> B –> C –> D。在具体一点,比如 A —— 启动场景、B —— 资源加载场景、C —— 登录场景、D —— 战斗场景。 游戏先启动 –> 加载资源阅读全文
posted @ 2017-09-27 11:18 meteoric_cry 阅读(21) 评论(0) 编辑
摘要: 先看最终效果 wireshark是开源的,而且在Windows下安装时用的是64位,所以相应的库文件需要使用64位。 一个Lua插件的Dissector结构大致如下: do -- 协议名称为 m_MeteoricProto,在Packet Details窗格显示为 XXX Protocol local struct = Struct local data_d...阅读全文
posted @ 2017-09-11 20:31 meteoric_cry 阅读(37) 评论(0) 编辑
摘要: 在使用VC++进行开发时,如果按F5进行Debug时,当前相对资源是相对工程的vcxproj的文件夹目录,而直接双击运行exe时,资源是相对exe的文件夹目录。为了兼容这二者,最好使用绝对路径,这样无法是Debug还是直接双击运行exe时都不会遇到无法加载资源的问题。 char* WcharToChar(const wchar_t* wp) { char *m_char; in...阅读全文
posted @ 2017-08-17 21:05 meteoric_cry 阅读(39) 评论(0) 编辑
摘要: 项目中引用了XLua,而Lua文件又是以txt文件结尾的,当修改系统的扩展脚本编辑器为vs后双击lua文件(xx.txt)默认也使用vs打开了,无提示的黑白文本编辑 昨办? …. 后来看到网上有写Unity的插件,想着应该也能判断后缀名然后调用指定的编辑器,果然可以。直接贴代码了(C#文件,只要建一个名为Editor的目录 —— 与路径无关,扔进去就行,Unity会自动编译的) ...阅读全文
posted @ 2017-08-16 16:33 meteoric_cry 阅读(22) 评论(0) 编辑
摘要: 主要用到协程(Coroutines)和游戏对象的生命周期(GameObject Lifecycle)基础知识,巧妙解决了游戏重启的问题。 关于协程,这里有篇文章我觉得写的非常好,理解起来也很容易。推荐先看这篇文章:对Unity中Coroutines的理解>> 协程简单来看分三部分: 1)启动,常用方阅读全文
posted @ 2017-08-16 15:40 meteoric_cry 阅读(23) 评论(0) 编辑
摘要: 官方的事件函数的执行顺序中有详解(Link:Execution Order of Event Functions) (图片来源:http://whatiseeinit.blogspot.com/2012/10/unity3d-monobehaviour-lifecycle.html) 通过实际操作来阅读全文
posted @ 2017-08-16 13:52 meteoric_cry 阅读(59) 评论(0) 编辑
摘要: 下载软件 1) Graphviz,下载地址:http://download.csdn.net/detail/u010953266/8591169 为什么不用官网?一是下载速度慢,二是下载到本地的文件貌似是有损坏的,每次安装都报错,后来直接放弃了,从其它地方搜到的; 2)Doxygen,下载地址:ht阅读全文
posted @ 2017-08-08 20:50 meteoric_cry 阅读(21) 评论(0) 编辑
摘要: 可能很多人都遇到过浮点数精度丢失的问题,下面以JavaScript为例。 1 - 0.9 = 0.09999999999999998 纳尼,不应该是0.1么,怎么变成0.09999999999999998呢?这就要从ECMAScript标准讲起了。 ECMAScript 并不像其他编程语言一样对数值类型进行比较具体的划分。ECMAScript 中并不区分整数和浮点数,也不区分不同长度的整数和...阅读全文
posted @ 2017-07-31 22:39 meteoric_cry 阅读(99) 评论(0) 编辑
摘要: 随着微信消息的轰炸,我决定重拾邮箱。为了方便管理邮箱,我下载并试用了Foxmail和网易邮箱大师,Foxmail不确定用什么语言开发的,可能是C++或者Delphi(早期应该是Delphi,最新的版本不确定),而网易邮箱大师用的是基于duilib + directui进行开发的(微信PC客户端也是用这个进行开发的)。但二者都大量内嵌了网页在里面。 界面布局和清爽度上,网易邮箱更胜一筹,而且从更...阅读全文
posted @ 2017-07-27 14:48 meteoric_cry 阅读(205) 评论(0) 编辑
摘要: 介绍一款Windows下的神奇 —— everything,软件很小巧,但是搜索速度非常快,比Windows自带的搜索功能更强大、更快。掌握它的基本用法,在查找文件时能提升很高的效率 1、下载 2、基本设置(搜索历史) a) 如何开启搜索历史 默认搜索历史是关闭的,可以手工开启。 菜单栏“工具” –> “选项” 快捷键 ctrl + p 点击“历史” 确保勾选“启用搜索历史” ...阅读全文
posted @ 2017-07-12 21:55 meteoric_cry 阅读(377) 评论(0) 编辑
摘要: App项目使用Bugly的内测分发功能进行整包的测试,但日积月累之后,版本就会特别多。而线上同时跑的版本可能不过三个左右,那么多版本会干扰到查看崩溃、选择版本,如何隐藏呢? 右上角,更多 –> 产品设置 –> 版本管理 可是bugly有bug,只能设置显示,不能设置隐藏 >_>> ((i & 0x03) hex string conversion var _byteToHex = [];...阅读全文
posted @ 2017-07-06 20:51 meteoric_cry 阅读(85) 评论(0) 编辑
摘要: 公司项目有一款带即时聊天、群组功能的APP,因为要给客服人员使用,需要开发PC版本。之前使用C#开发过一个PC版本,但是C#的UI这一块支持的不太好,而且升级比较麻烦,我就牵头基于Electron去实现了一个PC版本。 遇到了客服那边提过来的需求,当有新消息过来的时候,如果聊天窗口最小化了,需要有提醒,系统托盘也要像QQ一样有新消息过来的提醒与闪烁。 查了一个资料,两个功能都实现了...阅读全文
posted @ 2017-07-05 20:29 meteoric_cry 阅读(179) 评论(0) 编辑
摘要: 最近使用Fiddler抓取手机上的HTTPS请求时,遇到一个问题。设置完之后,访问HTTPS的页面,却得到一个错误 网络出错,轻触屏幕重新加载:-1202 (如下图所示) 我印象中,之前都好好的,怎么突然就不行了呢?我重新审视了一遍自己的操作步骤。 首先启动Fiddler,然后设置手机网络的HTTP代理。之后在iPhone上用Safari访问ip:port 然后...阅读全文
posted @ 2017-05-10 20:21 meteoric_cry 阅读(96) 评论(1) 编辑
摘要: 经过一段时间的考虑,我决定开通个人公众号。在这个不确定的世界里,我越来越感觉到编程、英语、写作是未来生存三项十分重要的技能,而我发现我在写作上面还需要很多的锻炼,而公众号正好也是一个历练自己的机会。 公众号的名字叫:布衣张少。我本是布衣的命,奈何有颗少爷的心,不求闻达于大V,只求心中的那片宁静。 博阅读全文
posted @ 2017-02-24 17:39 meteoric_cry 阅读(65) 评论(0) 编辑
摘要: 2016发了几件被称为黑天鹅的大事件: 1、英国脱欧了; 2、特朗普当选美国总统了; 3、朴槿惠遭弹劾被停职; 而我在看了《得到》专栏吴军老师发表的那篇《市场永远是对的》后,里面的一些观点值得深思。 在股票投资上,总有这样一些精英,他们建造了非常‘完美’的预测模型,但是预测市场就是不准,于是他们说市场有问题。当然,真正的投资人知道,市场永远是正确的,要错也是你的模型错了。 ...阅读全文
posted @ 2017-02-20 22:00 meteoric_cry 阅读(54) 评论(0) 编辑
摘要: 肯定很多人都听过“细节决定成败”,百度百科的版本是这句话最初来自一个小故事“丢失了一个钉子,坏了一只蹄铁;坏了一只蹄铁,折了一匹战马;折了一匹战马,伤了一位国王;伤了一位国王,输了一场战斗;输了一场战斗,亡了一个帝国。” 也有人将这句话作为书名进行出版,三个人取了相同的一个名字《细节决定成败》,最早出版于2004年。那到底细节是否真的就决定了成败,看那三本书以及书中的例子得到的答案是肯定的,而我...阅读全文
posted @ 2017-02-20 21:16 meteoric_cry 阅读(42) 评论(0) 编辑
摘要: 老婆反映水果6在收到微信视频聊天消息后,收到推送,有横幅和滴的一声(跟聊天消息一样),但是没有不间断的响铃,我花了近半个小时帮她解决这个问题,从系统提示音、微信通知、系统声音设置都是正常的,网上各种搜索,发现有人也提到这个问题,但没有解决方法,有一个人提到说重装(重装意味着微信数据全部丢失,如果不做阅读全文
posted @ 2017-02-18 23:42 meteoric_cry 阅读(129) 评论(0) 编辑
摘要: 主要创始人 马化腾:腾讯公司控股董事会主席兼首席执行官 许晨晔:腾讯公司首席信息官 张志东:2014年3月19日卸任首席技术官(CTO) 陈一丹:2013年3月21日宣布卸任首席行政官(CAO) 曾李青:1999年-2007年期间担任腾讯公司首席运营官(COO),2007年6月离开腾讯后担任腾讯公司阅读全文
posted @ 2017-01-02 20:19 meteoric_cry 阅读(1713) 评论(0) 编辑
摘要: 因为之前用过上述的组合完成过很多系统,而这一次是为了实现一个帮助系统的静态网页发布。因为很久不写,重点说遇到的几个坑: 1、库版本的问题 比如mysql连接数据库一直报错,因为系统重装过,所以重新安装了最新的Node和Mysql,结果死活连接不上,折腾了半天最后发现需要升级一个node-mysql,错误信息: Error: ER_ACCESS_DENIED_ERROR: Access ...阅读全文
posted @ 2016-12-07 16:52 meteoric_cry 阅读(836) 评论(0) 编辑
摘要: 通常App都会采集用户的设备信息,比如设备类型、网络类型、内存大小等,而拿到的数据比如:iPhone 8,1是什么意思?代表iOS 8.1吗,非也。这里放二个网站大家可以上去查一查,在统计分析的系统里可以将设备类型再‘翻译’过来 https://support.hockeyapp.net/kb/client-integration-ios-mac-os-x-tvos/ios-device-...阅读全文
posted @ 2016-11-28 17:57 meteoric_cry 阅读(44) 评论(0) 编辑
摘要: 国外的网站stateofjs.com根据超过九千位开发人员的问卷调查,发布了2016年JavaScript的年度概况报名。 注:本文翻译的部分可能存在不准确的情况,请以原文为准。 调查结果的报告目录结构如下: 简介 JavaScript风格 前端框架 状态管理 API层 全栈框架 ...阅读全文
posted @ 2016-10-20 16:03 meteoric_cry 阅读(199) 评论(0) 编辑
摘要: 这里主要以微信和QQ空间为作为研究对象,得到的结论如下。 QQ空间里的动态 iOS设备,以iPhone6为分界 iPhone6及以上分辨率的设备: 当宽且高同时 > 512px时,判断 宽/高的比例值:大于 2时,以高度为基准,缩小到512px,宽度等比缩、小于等于 2时,以宽度为基准,缩小到512px,高度等比缩 当宽、高其中一边小于512px,直接下原图; iPho...阅读全文
posted @ 2016-10-18 21:50 meteoric_cry 阅读(792) 评论(0) 编辑
摘要: 在社交应用中,很多场景下需要用到搜索,以微信的搜索通讯录为例。好友自己有昵称,我们可能给他/她备注一个昵称,在输入:拼间、首字母、原文时都应该能匹配到(匹配优先是备注然后才是原来的昵称)。这里以‘芈月传’为例,‘芈’不是常见字,所以输入:myz或者miyuezhuan或者芈月传,都应该能匹配到‘芈月传’这个结果。当然不一定需要全部写完,比如输入:my的时候就应该能匹配到‘芈月传’了。针对多音字的话...阅读全文
posted @ 2016-10-12 21:53 meteoric_cry 阅读(2151) 评论(1) 编辑
摘要: redux-cheat-sheet-3-2-1.pdf react-cheat-sheet-0-14-7.pdf阅读全文
posted @ 2016-10-09 21:00 meteoric_cry 阅读(54) 评论(0) 编辑
摘要: 先来看下forEach的实现 // Production steps of ECMA-262, Edition 5, 15.4.4.18// Reference: http://es5.github.io/#x15.4.4.18if (!Array.prototype.forEach) { Array.prototype.forEach = function(callback, this...阅读全文
posted @ 2016-09-30 18:00 meteoric_cry 阅读(3891) 评论(0) 编辑
摘要: IM(InstantMessaging 即时通讯)作为一项基础功能,很多APP都有,比如:手机QQ、微信、易信、钉钉、飞信、旺旺、咚咚、陌陌等。而IM如同我们日常生活中的水和电一样,必不可少,也是很多“社交”类APP必不可少的基础功能,而上面这些APP里面,微信最为出色。 如果作为一名创业者需要用到阅读全文
posted @ 2016-09-12 01:23 meteoric_cry 阅读(2031) 评论(0) 编辑
摘要: 在Windows下好不容易安装好React Native环境之后,运行npm start,结果就是无限被等待,快的话160秒(将近3分钟啊。。。。) 而Mac下因为有watchman所以是飞一样的速度,1秒不到,一般几十到几百毫秒。此处一千一万只草泥飞在胸中奔腾… 所幸找到一个解决方案了,能让npm start也飞起来(500毫秒左右),操作步骤如下: 1、安装watchman,在Wi...阅读全文
posted @ 2016-09-01 16:55 meteoric_cry 阅读(876) 评论(1) 编辑
摘要: iOS下因为有watchman这个插件,所以启动很快(npm start),而Windows下则非常慢,最要命的是遇到了修改js文件后,点击reload居然一直是请求的缓存bundle,泪崩。。。 后来找到一篇文章,解决了这个问题,就是说超时导致的,但是超时的时候没有反馈错误,原因不明。解决方案就是延长超时时间: //\node_modules\node-haste\lib\Fil...阅读全文
posted @ 2016-09-01 15:46 meteoric_cry 阅读(2496) 评论(0) 编辑
摘要: iOS的“设置” –> “显示与亮度” –> “文字大小”,可以修改默认的系统字体大小,当修改之后,系统自带的应用如信息等都会随之改变,手机QQ会随之发生变化: 而微信的字体大小并不会随系统的字体大小改变而改变,微信自己有设置文字大小的功能,在“我” –> “设置” –> “通用”-> “字体大小”中进行设置 iOS中如果想做到跟随系统默认的字体大小改变而改变,怎么实现呢...阅读全文
posted @ 2016-08-24 21:55 meteoric_cry 阅读(536) 评论(0) 编辑