- 博客(267)
- 资源 (1)
- 收藏
- 关注
原创 Unity原生平台插件开发简介(Android/iOS)
一、Unity如何调用c#之外的语言的内容1、c/c++可以编译成.so动态库(android平台下),.dll动态库(window平台和编辑器下),.a静态库(iOS平台下),.bundle包(Mac平台下和编辑器下) 把编译好的东西放在Plugins目录下的指定平台目录下即可。比如iOS平台就放在iOS文件夹下面。Android平台根据cpu架构不同放在对应文件夹下面,比如A
2017-02-25 15:08:26
4836
原创 Unity发布到iOS平台后的相关问题
1、iOS支持luajit,但是不支持其jit模式。luajit编译出来的bytecode是平台相关的。即64位和32位的luajit程序编译出来的bytecode是不兼容的。如果没有留意这点的话,可能发布出来的游戏会不兼容iPhone5及以下设备。 iPhone5S,iPad Air之后的设备都是64位的cpu。2、声音千万不要选Load In Background选项。否则在部分iOS设备
2016-11-01 15:30:51
3148
原创 华为手机指定android:installLocation为preferExternal后游戏无法安装
android:installLocation可以为auto internalOnly preferExternal。默认为internalOnly。在Unity中这个值可以在Player Settings里面进行设置。设置为preferExternal后,华为手机App安装失败,而当我把游戏资源都删掉减少安装包大小后是可以正常安装的。怀疑是Android或者是华为定制系统计算剩余空间
2016-10-28 12:38:22
4286
原创 Unity导出XCode工程的时候自动修改工程设置添加依赖
代码如下#if UNITY_IOS || UNITY_EDITOR // ios版本xcode工程维护代码 [PostProcessBuild(999)] public static void OnPostprocessBuild(BuildTarget BuildTarget, string path) { if (BuildTarget ==
2016-10-23 22:19:29
10144
原创 Unity5 AssetBundle资源管理
最近在开发的过程中,断断续续的踩了很多的坑,这里记录一些经验或者心得。1、打包使用LZ4格式,加载使用LoadFromFile,这个在之前的文章里面已经分享过了。 这个应该是兼顾内存、加载速度、包体大小的通用方案了。如果更加关注加载速度,可以考虑使用不压缩的assetbundle,自己使用zip压缩,然后解压到sd卡(外存)。不太推荐lzma的压缩格式,仅仅提高了20%左右的压缩比,但是内存和
2016-10-17 00:41:32
2651
原创 Unity中Shader和AssetBundle结合使用的注意事项
1、我们一般把资源和代码作为两个工程。资源工程导出assetbundle供代码工程使用。这么做主要是防止资源过多导致代码工程启动速度慢,影响开发效率。2、尽量避免使用Resources文件夹。这个文件夹就相当于一个系统默认的AssetBundle。只不过不能增量更新。它会严重影响打包速度。我们把资源从Resources移出来后,打包时间从半个多小时,减少到2~5分钟。2、Shader都要加
2016-10-14 19:46:52
9841
1
原创 Unity的UGUI中使用ETC1+Alpha的格式
Unity5.3之后,Android平台的默认压缩纹理改为ETC2。ETC2支持半透明,使用也很方便,不过问题是尚未普及,尤其是低端机是不支持ETC2的。Unity对不支持ETC2的机子,在加载图片的时候会解压为RGBA,不过这样就会造成极大的内存浪费,也会严重影响加载速度。 对于没有透明色且为2的整次幂的正方形图片,Unity会转为ETC1,所以模型的纹理是可以用默认的压缩格式
2016-10-08 19:50:51
13005
原创 Unity5的AssetBundle系统在mmo中的使用经验
先推荐三篇不错的文章http://blog.uwa4d.com/archives/ABTheory.html http://blog.uwa4d.com/archives/ABtopic_2.htmlhttp://www.cnblogs.com/murongxiaopifu/p/5629415.html基本上核心的知识点上面的文章都涵盖了,讲述的非常清楚,这里
2016-08-20 11:49:49
9386
原创 发布测试版本,通过网页在线安装ipa和apk
很多时候我们需要发布一个测试版本,如果发布为安装包,让测试人员自己安装的话,很多时候是非常困难麻烦的,尤其是iOS版本,多数人并不知道除AppStore之外的安装方式。 通过网页在线安装可以达成自动化部署,终端测试用户只需要通过页面下载安装即可。也可以免去发包给发行商的步骤,分享一个链接地址,他们点击链接即可完成安装。 Android版本很好处理,只需要部署好一
2016-05-09 11:44:37
20312
2
原创 Unity实现残影特效
实现效果如上图所示。代码如下:using UnityEngine;using System.Collections;using System.Collections.Generic;using System.Linq;// 残影效果public class AfterImageComponent : ActorComponent{ class AfterImage
2016-03-24 23:03:51
13925
3
原创 Golang的包管理、项目管理
Golang的包管理有两个特点,一个是去中心化,也就是说,不像Node.js有一个npm,包的仓库可以是任意的代码仓库。一个是代码仓库跟代码本身耦合在一起(比如导入一个包是 "github.com/langresser/websocket"),这个是Golang推荐的工作方式。 好处是go get命令可以轻易的安装好一个项目的依赖(自动从github上面clone,并放在GOPATH
2016-01-14 10:24:16
8373
原创 使用Golang开发手游服务器的感想
从最初决定使用Golang开发游戏服务器(参考这里),到服务器基本成型,经过了两个多礼拜的时间。这里记录一下感想和心得。具体Golang的使用经验将来有时间会再开篇文章来写。 两个礼拜的时间,完成了Golang的入门,服务器框架设计,功能的完整移植,从我个人角度来说,要给Golang和我自己100个赞。 最初我选定Golang就是考虑到它有以下优点;
2016-01-11 11:30:00
19153
3
原创 对于游戏服务器的一些思考和研究
客户端已经写了五六年了,但是并没有写过服务器。现在有相关的需求,希望能够以比较省时省力的方式完成服务器的开发。经验比较浅,所以以下言论只是个人观点和吐槽。 我对服务器技术的理解是这样的。做到京东、阿里这么大的规模的时候,对数据一致性、容灾、安全性、稳定性、并发性等等都有非常高的要求。这个很依赖于经验,没有足够的经验,学的再多也是纸上谈兵。 web服务器跟游戏服务器有所区
2015-12-20 17:54:58
12458
2
原创 Unity5中灯光烘焙(lightmap)的一些注意事项
之前自己研究了下lightmap,不过并没有关注效果和细节,只是关注了使用流程。 今天配合美术测试了下Unity5中的lightmap,有一些经验心得。 首先推荐一篇文章,将的非常不错 http://www.edy.es/dev/docs/unity-5-lighting-cookbook/1、灯光烘焙的速度非常慢。在Unity5中尤其慢(可能是因为效果和
2015-12-15 18:16:07
43818
原创 Unity5的uGUI中实现文字渐变效果(Gradient)
代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;[AddComponentMenu("UI/Effects/Gradient")]public class Gradient : BaseMeshEffect{ [Ser
2015-12-03 11:23:47
15412
原创 Unity中T4M插件的使用,以及针对5.0的修改
T4M插件是一个高效的地形制作插件,最强大的地方在于可以像Unity刷地形一样,刷一个模型。比如多数情况下,地面就是一个平面,如果用Unity的地形系统,可能会因为一些细节导致DrawCall增多,顶点增多。这个时候美术通常会在3DMax中直接制作好模型(地形)。 然后通过T4M可以在上面刷出细节丰富的地表,可以支持多个贴图之间的混合。 Unity5中T4M的2.5版本会有一些Bug
2015-11-27 12:12:23
13795
2
原创 Unity的UGUI中使用CustomFont(BMFont)
Unity的UGUI的文字渲染效率应该是挺高的,一般来说用默认的Text控件,TTF的Font就满足需求了。不过有时候需要渲染艺术字体的时候还是需要用到BMFont。一、BMFont的基础使用,创建fnt字体的步骤就不多说了。这里额外提一下就是BMFont是支持命令行的。这里贴一下我使用的脚本,更新字体比较方便。 bmfc文件是BMFont的配置文件,使用BMFont的GU
2015-11-21 14:07:28
12537
原创 Unity5中lightmap的坑
Unity5中光照系统替换为Enlighten是非常大的革新。但是对手游来说,好处还未享受到,坑先踩上了。并且是我研究了两天都没有很好的解决办法的深坑。 我并没有系统的学过图形学,所以以下所说的内容都是自己的理解,可能存在错误的地方,敬请见谅。 所谓lightmap,就是用一组预先烘焙好的贴图来替代运行时光影计算。在Unity5之前使用的是beast系统,Uni
2015-10-05 17:07:48
15101
原创 Unity自动更新、AssetBundle整理
这篇文章梳理了我现在所理解的Unity的AssetBundle、自动更新的流程和知识点。一、关于AssetBundle 如果不是为了自动更新的话,其实完全可以避免掉AssetBundle,全部资源放到Resources目录下或者在Scene中直接引用。这样可以避免掉很多坑。但是考虑到手游的自动更新,AssetBundle就非常有必要了。它相当于一个小的资源包,提供了在游戏完整
2015-09-28 11:07:53
6245
原创 Unity中uGUI的控件事件穿透逻辑
1、正常来说Image和Text是会拦截点击事件的,如果添加EventTrigger的话,就可以响应对应的交互事件。2、如果Image和Text是一个Button的子控件,那么虽然其会显示在Button上面,但是并不会拦截点击事件。除非是Selectable的,否则子控件不会影响到父控件的点击。3、如果是跨Panel或者是同级的Image和Text,是会拦截点击事件的,即如果Image在某
2015-08-21 11:02:25
12480
2
原创 使用Redmine进行项目管理
1、https://bitnami.com/stack/redmine 有一键安装包,可以极大的简化安装、部署操作。2、无论是新功能、还是Bug,都是“新建问题”,在配置中可以编辑其对应的标签。3、在项目的配置中可以添加版本,添加版本后会出现路线图的分页。路线图就是最直观的项目进度预览。4、当新添加一个版本,如“数值修正版本v1.01”,可以对应新建几个问题,并将其版本归属选择成这个新
2015-08-04 10:41:11
5555
原创 Unity中uGUI的多分辨率处理
1、通过RectTransform中的Anchors和Pivot来进行控件和窗体的布局适配Anchors控制当前Panel相对于父窗体的布局位置,可以设置为居中或者左上角,当父窗体拉伸的时候当前Panel可以自动布局到正确位置。同时这里可以设置拉伸,比如主界面一般是全屏拉伸的,这种情况可以在这里处理。Pivot是当前控件坐标系的锚点位置,通过代码调整坐标位置的时候需要注意这个的设置
2015-07-30 14:35:15
3198
原创 在Unity中使用uGUI绘制自定义图形(饼状图 雷达图)
饼状图或者是雷达图是根据属性自动生成的自定义图形。这里展示了如何使用uGUI完成这一功能。 先附上我制作雷达图的控件的代码 UIPropWidget.csusing UnityEngine;using System.Collections.Generic;using UnityEngine.UI;/* * * 2 6 * *
2015-07-17 15:53:46
19388
2
原创 Dota2技能系统设计分析
前两周写完了新游戏的技能系统。虽然也算灵活,但是跟Dota2的技能系统设计比起来,就差了很多。无论从灵活性还是功能实现上,其技能系统设计的都相当漂亮。如果早一些分析它的技能系统的话,我想我可以实现的更快更好。 与之类比还有一些游戏,其技能系统设计的也很漂亮,比如魔兽争霸3 火炬之光2 星际争霸2,它们都很灵活,从其众多的MOD就可以看出来,甚至MOD的作者可以做出游戏开发者
2015-07-06 17:35:01
9959
原创 手游帧同步的研究
网络游戏的同步可以做的很简单,也可以做的很复杂。简单来说就是通过Http或者Socket来跟服务器同步数据。而如果往复杂了说,可以有p2p、帧同步、航位预测等等高级课题可以研究。 因为我们的项目需求----几百个独立单位的实时同步(带pvp的rts),所以研究了下帧同步。不过后来发现它其实有很多问题,所以具体如何还要看其他同事的研究成果。以我个人来说,修改游戏方案反而是最合理的解
2015-07-04 17:18:26
16051
2
转载 游戏开发经验分享:我所理解的打击感
http://www.gameres.com/384281.html大家都知道一个格斗游戏的灵魂就是打击感,对于打击感,相信每个人都有自己的理解,下面就来说说我对打击感的理解吧,虽然年纪小了点,不过为了一窥打击感的奥秘,光被我逐帧分析的游戏就有几十个……积累数年,这可是我的葵花宝典,嘻嘻,下面就跟大家去分享一下我的一些拙见。 首先我们先来看手机这个平台,我这里
2015-06-03 09:48:08
3016
原创 Unity客户端框架笔记二(组件实体开发模式的思考)
Unity的Entity-Component-System实现的非常漂亮,非常灵活。很多文章也对这种组件实体的开发模式倍加推崇。因为它契合这么一条规则:优先使用组合而不是继承。 但是实际开发过程中,限制于我的个人能力,想实现一个同样漂亮的基于组件的MMO框架是非常困难的一件事情。 这篇文章是个人开发过程中的一些思考,实际上,所谓漂亮的框架是因人而异的,并且不一定
2015-06-02 11:40:13
5394
原创 Unity客户端框架笔记(状态模式和策略模式在游戏中的应用)
最近花了几天时间梳理了一下新游戏的客户端框架,虽然本身就有相对明确的方向,但是在一开始写的时候还是有些混乱,不过最终梳理完成后,个人感觉代码清爽很多。 这篇文章不是设计模式的教学,而是自己的一些想法和实践,我把代码梳理成自己喜欢的结构,保证逻辑和结构的清晰,但是这并不意味者它是符合所有人习惯的。 我之前有写过一两篇文章讨论客户端的结构,也吐槽过一些其他人的设计。
2015-05-17 19:41:14
3960
原创 Unity中直接使用transform和gameObject的效率测试
尽信书不如无书,更何况是网上开发者的博客。这里也包含我自己的博客,有的时候回过头来看是有错误的地方,但是我也懒得改了,而且很多时候我们看到的文章还不一定是原始地址,而是被各个网站七转八转的,更加不可能保证准确性。 这里测试了这么一个说法:“不要在脚本中直接使用transform或者gameObject,而应该在一开始缓存成成员变量如_transform和_gameObject来访
2015-05-16 12:06:08
5894
原创 Unity热更新方案(uLua vs sLua)
首先附上这两个项目的地址,这两个项目都是比较完善的lua解决方案,从效率和使用方式上说都不相伯仲,我最终选择了ulua,但是并不是说其具有压倒性优势。 uLua:http://ulua.org/index.html sLua:https://github.com/pangweiwei/slua 引入lua,基本上就是为了热更
2015-04-18 13:50:09
21832
转载 COSMOSBOX手遊制作手册
20140712版版本号Version日期Date作者Author变更主要原因描述Brief Description1.02014-4-26陈霈霖初稿2.0 非常不错的文档,赞同其大部分内容。原文地址:http://www.cnblogs.com/mrkelly/p/39
2015-03-31 18:08:27
1973
转载 Unity4.6新UI系统初探(uGUI)
原文地址:https://github.com/jareguo/unity-ugui/tree/master/overview引言Unity终于在即将到来的4.6版本内集成了所见即所得的UI解决方案(视频)。事实上从近几个版本开始,Unity就在为这套系统做技术扩展,以保证最终能实现较理想的UI系统。本文试图通过初步的介绍和试用,让读者对这套系统有大体的了解,以便更进一步评
2015-03-31 17:08:13
1721
原创 为什么Unity5打的空包有17mb?
今天在论坛上看到有人提到Unity5的诸多“罪状”,其中一条就是打出来的空包竟然有17mb,而之前的版本是9mb。我很好奇,难道是IL2Cpp搞的鬼? 因为好奇,我特意准备了Android环境(之前的环境太老了,不得不重新弄),打了一个空包试验了下。其实原因很简单,因为考虑到兼容性Unity5默认情况下同时打了armv7a和x86的动态库。于是空包的大小就增加了几乎一倍。
2015-03-28 21:39:19
4366
原创 将刀塔传奇中的jpg+mask文件转换为带透明通道的png文件
实际操作非常没有技术含量,不过想展示一下万能的python。虽然python的文字编码和空格对齐我很反感,但是不得不说,其接口设计非常优秀,让复杂的工作变得非常简单,这种思想也体现在第三方扩展上面。 刀塔传奇使用jpg+mask文件的形式,达到压缩资源的目的。jpg的压缩比非常优秀,而mask含有透明通道信息,这样就可以大大压缩图片大小。 不过我个人更倾向于pn
2015-03-19 11:19:15
3241
原创 Unity如何在Editor下执行协程(coroutine)
在处理Unity5新的AssetBundle的时候,我有一个需求,需要在Editor下(比如一个menuitem的处理函数中,游戏没有运行,也没有MonoBehaviour)加载AssetBundle。而加载AssetBundle的时候又需要使用yield return www;这样的协程用法。 所以就有了一个需求,在Editor下执行协程。我从网上找到一个EditorCorout
2015-03-13 18:12:39
10367
原创 Unity5新的AssetBundle系统使用心得
Unity的AssetBundle系统是对资源管理的一个扩展,动态更新,网页游戏,资源下载都是基于AssetBundle系统的。但是不得不说,这个系统非常恶心,坑很深。至于有多深,请看这篇文章: http://www.cnblogs.com/ybgame/p/3973177.html 原先的AssetBundle系统需要自己写一大坨导出的代码(BuildPipeline),这个新
2015-03-11 23:54:48
21116
1
原创 Unity换装的实现
关于Unity的换装,网上有几篇文章,我之前也简单的描述过实现。不过那个时候只是粗略的试验了下。今天好好梳理了下代码。 先上代码(自己的游戏项目,不是公司的,所以放心的贴上项目代码了,部分引用到其他的功能文件,但是核心代码无影响,这里主要看一下细节和思路)using UnityEngine;using System.Collections;using System.Col
2015-03-10 20:24:30
7855
原创 在Jenkins的Python脚本中模拟用户输入
这个需求很少见,但是好不容易试验成功了,所以要记录下来备忘。 我们使用Jenkins+TexturePacker进行资源的自动打包和转换。 TexturePacker首次运行需要在命令行中输入agree进行版权声明的用户确认。而Jenkins的系统环境是独立于桌面系统的,所以在Jenkins里面要再一次输入agree。于是就有了一个非常恶心的情况,Jenkins
2015-03-09 19:45:02
3647
原创 Unity将粒子光效导出成png序列帧
这个功能并不是很实用,不过美术同学有这样的需求,那么就花了一点时间研究了下。 我们没有使用Unity的引擎,但是做特效的同学找了一批Unity的粒子特效,希望导出成png序列帧的形式,然后我们的游戏来使用。这个就相当于拿Unity做了特效编辑器的工作。这个并不是很“邪门”,因为用幻影粒子,或者3dmax,差不多也是这个思路,只不过那些软件提供了正规的导出功能,而Unity则没有。
2015-03-03 13:39:18
18003
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人