Hi, nice to meet you!

Unity 2D 游戏背景适配

在开发2D游戏的时候,不同的设备分辨率下,经常需要将背景以高或以宽来适配。如果以高适配,即背景图的高度填充整个屏幕,然后去缩放宽度。最终效果图如下

注意,我们的背景图片 Pixel Per Unit 的值保持默认的 100,如果用了其他的值,那计算时也要对应修改

Unity 2D 游戏背景适配

Unity Sprites Full-Rect 和 Tight 设置

在开发2D游戏的时候,对于图片的 Mesh Type 设置我们应该选择 Full Rect 还是 Tight 呢?

Unity Sprites Full-Rect 和 Tight 设置

Unity 接入 Topon 报错解决

最近在接入Topon广告聚合SDK是,导出XCode工程后,编译报了一堆错误,搞了好久,这里记录一下解决过程。

主要是将第三方的 framework 和 bundle 文件在XCode中配置的问题。遇到错误,首先拿错误的关键字,去Google搜索一下,看一下是属于Apple的哪一个Framework,然后将Framework添加到 TARGETS -> UnityFramework -> Link Binary With Libraries 中即可解决。

Unity 接入 Topon 报错解决

Unity XCode 自动设置签名

Unity ios导出XCode工程后,通常需要手动设置签名,就像下图中的样子。只要简单的两部设置,就可以自动选择我们想要的签名。

Unity XCode 自动设置签名

Unity 接入 Sigmob SDK

在 Unity 项目中接入Sigmob 时,遇到很多问题,他们的文档写的也不是很清楚,特别是对于 Android 开发没有很深入了解的情况,读起来很困难,这篇博客记录了详细的 Sigmob 广告 sdk 接入过程。

1. 注册 Sigmob 开发者账户

这一步不需要过多解释,直接注册就行

2. 下载 Sigmob SDK 并导入到工程中

这一步,我接入的是 Sigmob SDk, 而不是聚合 SDK,看下面的图下载

Unity 接入 Sigmob SDK

理解 Boids

Boids 可以理解为类似鸟群的东西,就是多个个体之间的相互作用。在游戏开发中经常会用到。例如 RTS 游戏,控制一个坦克战队,如何保持行进方向的一致性,以及坦克之间互相有一定有间隔,又不会间隔太大,这里就可以使用 Boids 相关的理论来实现。

在众多这方面的文章中,基本上会涉及到三个方面,跟随分离聚合。跟随,就是说整个群体有一个行进的大方向。分离,则是个体与个体之间有一定的间隔,不至于发生碰撞。而聚合,就是个体不能离群体太远,不能脱离群体。

对于上面提到的三个方面,简单来说,就是一个力的叠加。

理解 Boids

Apk 上架前的签名操作

在 APK 包上传到一些应用市场时,通常要求开发者对 APK 进行签名,下面记录一下签名步骤。

这里的签名操作,与 Unity Build APK 时是否使用了 keystore 无任何关系。

Apk 上架前的签名操作

Unity 接入友盟SDK

友盟游戏统计 SDK 可以很方便的统计一些游戏数据。使用他们的自定义事件,来统计自己项目关心的数据。现在接入 SDK 已经比以前方便了很多,不需要再导出 Android 工程去修改 Java。下面将一步一步详细说明。

要使用友盟 SDK,一共有以下几步

  • 在友盟后面新建应用
  • 在友盟后面建立自定义事件
  • 下载并导入 SDK
  • 调用 SDK
Unity 接入友盟SDK

游戏项目资源管理

在游戏开发的过程中,整个项目的资源管理是很重要的一部分。涉及到与美术、策划等同事的协作,以及资源的打包,和后续运行时资源的更新,加载,卸载,内存管理等方面。规划好资源的的各个目录存放,以及资源的分类,会为后续的开发工作节省不少时间。这一篇博客主要来聊一下到资源的存放问题,而 AssetBundle 打包,以及运行时的更新和资源管理,将在后面的博客中详细说明。

游戏项目资源管理

Unity Shader | 半兰伯特、高光反射、BlinnPhone

写 Shader,到底是在做什么?Shader 就像一个拥有魔法的黑箱,我们最终从它那里得到的,是像素的颜色。而得到的是什么样的像素颜色,则取决于我们丢进黑箱里的是什么东西,以及使用的魔法咒语是什么。丢进同样的东西,使用不同的魔法咒语,得到的像素颜色也是不一样的。输入顶点的坐标,光线方向,以及自定义的颜色,使用不同的计算方式,得到的像素颜色是不一样的。使用同样的计算方式,丢进一个纯色颜色值,和丢进一张纹理,得到的像素,也是不一样的。

如果把整个 Shader 比作一个函数,那么顶点位置,自定义的颜色值,纹理,灯光等这些就相当于函数的输入参数,而 Shader 中写的各种计算,用的各种算法,都是对输入的那些参数进行操作,而最终生成的,就是颜色值,也就是相当于函数的返回值。把 Shader 想的简单一点,就是输入需要的东西,进行计算,得到像素值。

这篇博客,还是关于光照模型的,接下来我们首先总结一下常用的光照模型。

Unity Shader | 半兰伯特、高光反射、BlinnPhone