UE4项目开发笔记(二)

UE4大约有500W行的代码,如果UE4项目编码使用VS的话 , VS很多好用的代码快捷功能会有严重的卡顿感.万幸VX插件毫无影响!所以下面简单罗列一下我这十年间使用VX插件的小糖果 (●’◡’●) ,
(没错, 我使用VX已逾十年!)

注: 小番茄助手 = Visual Assist Options

助手官方网站: 传送门
PS 价格: 99刀 一年更新权限 + 单版本永久权限. (推荐)
PPS 其他获取方式自行谷歌

目前这个工具对VS上编码几乎达到了无缝支持 , 下面简单介绍几个如虎添翼的功能:

继续阅读

UE4项目开发笔记(一)

我们这代人呀
从Flash到cocos,再到Unity 最后入坑UE4 (Unreal Engine4) ;
从页游到跨平台手游再到细分市场;
从ActionScript到C/C++ lua C# Java OC 兜兜转转,最终又回来捣鼓C++;
这不,开始开UE4的坑了.

工欲善其事,必先利其器 , 容我先推荐几个基础设备.

继续阅读

最近抽出了一个小黄金周(4.5天)去西安走了一遭,天天暴走模式.
西安地处关中平原中部,北濒渭河,南依秦岭,当年的名字更响亮 — 长安
这个季节去最合适,因为刚好是蒲公英纷飞的季节,对于我这种南方人来说 这是一种很少见的光景.

接下来,简单记录一下这次短途旅行的感受.

继续阅读

终于又到了这一天,回想过去一年,真是惊心动魄.焦虑依然存在 — 这是一篇毫无逻辑和主题的呢喃

关于生活

带来的焦虑

过去的2017年里,发生了很多的事情.内心的焦虑也愈发严重,关注了一整年的社会热点事件,发现大多数事情都如璀璨烟花,最短数天最长数月之后 就会被曾经多么慷慨激昂慷慨捐款多么愤愤不平的众人遗忘.大家不仅仅不遗忘了事情本身,还遗忘了它带来的教训.当纷扰过后 回归粮食和蔬菜,大家又追着下一个热点去了.最少多关注下粮食和蔬菜会不会比较好 ?
关注了几个极具争议性的事件之后(不是那堆娱乐事件)发现整个局域网里,都容不下敢说话 敢发不同声音的人.在大家认为的”大义凛然”面前,在大家的集体道德观面前,其他一切声音 都被打压得很惨,大家用一种非常不道德的方式(恶言相向 污言碎语)去打压大家不认同的声音.这样只会有一种结局,最后大家都会把东西憋在心里,最后实现共和.多么可怕的未来!

今年想要畅游网络更新困难了,楼梯愈发不稳定,今年花了更多的时间在研究扶梯上.如果说新年要有什么愿望,能畅游世界,就是我的愿望.

继续阅读

项目开发笔记(十五)

我以为我早已经摸透各种编码,各种开发语言转码早就可以写得666,但是这次填坑真的把人虐得欲罢不能.这次的事情有比较苛刻的前提条件,所以不一定适用于通过搜索找到此文章的各位遇到的类似情况.

先说说项目基本情况:

Client: Unity 5.3.4 (C#开发逻辑,Java OC原生开发支持,iOS下iL2CPP编译模式)
Server: 纯C++开发的服务器,PHP辅助

0x01. 引发的GBK编码问题

这个项目的网络数据的全部中文都是走GBK格式,数据到了客户端在iOS下所有中文均显示乱码.在 PC和Android下正常

关于编码问题有一篇经典文章 – 字符编码笔记:ASCII,Unicode和UTF-8

这个项目是一个超过十年的老项目(我主要负责移动客户端的实现),服务端使用纯c++开发,服务端底层架构和所有模块已经正常运行十年以上.导致遇到很多问题只能是客户端去适应服务端.所以不可能让协调服务端直接修改数据格式.

0x02. 使用I18N.CJK.DLL库

一个被提及最多的GBK格式数据在iOS iL2CPP模式下的转换方案是: 在link.xml中添加配置防止I18N.CJK.DLL被裁剪.配置方式为:

需从Unity安装目录 Editor\Data\Mono\lib\mono\unity 或 Editor\Data\Mono\lib\mono\2.0 两个目录中,拷贝I18N.DLL 和I18N.CJK.DLL到项目目录Asset文件夹下,在Assets根目录下添加link.xml文件,其内容如下:

但是我反复测试,这种方式在我当前的环境下(Unity 5.3.4,iOS,iL2CPP,Mac Pro,iPhone7P)一直是失败的.

继续阅读

项目开发笔记(十四)

最近几个月发生很多的事(工作之外),很多很多的事。工作上比较重要的事情还是需要好好记录,接下来说说Jenkins的配置流程(拖了几个月了其实),Jenkins在工作中给予我很大的帮助,到今天为止 Jenkins 已经帮我打包了200+个版本。每打包一个版本就相当于节省我20分钟的人力时间和沟通时间。自从有了Jenkins,我和公司的测试策划基本零交流,什么时候版本出来了一个邮件自动发送到他们的邮箱中。接下来他们爱测不测我不管。

我配置 Jenkins 的基本信息

- 工具信息
Download - https://jenkins.io/
Version - 2.32.2
OS - Win1064 desktop

- 项目信息
version - Unity534
OS - PC/Android/iOS

下载Jenkins的时候请注意有两个版本Long-term Support (LTS)Weekly,我们普通玩家就下载Long-term Support (LTS)即可。

继续阅读

项目开发笔记(十三)

最近使用Shader的时候需要给Shader传递参数,后面发现参数过多(30+个颜色值和10+个纹理),Shader在PC上运行得好好的,但是到某些移动设备上就尿崩,突然发现:

  1. 为什么shader无法往其传递数组呢?
  2. 为什么使用了多个纹理后(例如三星T560),在设备上无法运行正常?

Unity允许通过Material往Shader里传递int,Texture,Color, Vector4等参数,而且不同的移动设备可能支持不同的 Shader Model(SM 1 2 3 4 5),不同的SM版本会限制纹理指令和算术指令的数量使用。参考:High-Level_Shading_Languag。经过测试设备三星T560只能传入8个纹理指令,再增加就会工作不正常。我们不能改变设备显卡对SM的支持,只能通过减少纹理指令和算术指令的方式来兼容它。顺带把如何传入数组的问题也解决了。那怎么做呢?

继续阅读

项目开发笔记(十二)

哈,又一年了。在小时候过年总是非常有感觉,也满心期待。长大一点到了17 18岁的阶段,慢慢感觉过年失去味道 慢慢变成形式化,觉得过年传统做的节目都太无聊。又长大一点 到了25 26岁,过着常年背井离乡的生活 反而小时候对过年的期待又回来了,这几年我甚至非常热忱的参与到 杀猪 贴门神 拜天地等活动中…说回正题,我最近遇到一个需求.

一个小需求

对纹理中的指定色块,使用另一个纹理替换,如下图,这个图我们叫它原纹理

继续阅读

项目开发笔记(十一)

终于又可以继续我的项目开发笔记了,经过大半年的沉淀,我分别捣鼓了很多东西,大多数都应该整理笔记记录下来。构建工具一体化的实现我打算形成一个系列,把我的思路和部分实现记录一下。这里主要是针对Unity项目,在我实现整个流程之后 发现针对其他任何项目应该也类似,不管是需每次编译整个源码的cocos项目 还是AS项目Android原生项目。

相关涉猎

运行环境

Win10,OSX,Web

技术栈

SVN(or Git),应用在项目版本和源码管理

BAT批处理,SHELL脚本,应用在本地编译和打包

Jenkins,应用在控制远程执行打包,控制构建前后事件和任务

具体项目本身的适应,我准备拿Unity项目作为例子,这里如何把Unity的打包流程一键化是keypoint

继续阅读