Unity教程

Unity教程之-Unity3d编辑器之Editor的GUI的事件拦截

 

OnGUI是Unity上一个时代的UI系统,而现在运行时的UI系统已经被UGUI取代,但是Editor的UI还是在用老的这一套GUI系统。比如unity编辑器里的所有窗口,布局,按钮,拖动条、滚动等等都是用GUI来写的。GUI提供了一套Event事件系统,虽然不能模拟它的事件,但是确可以进行拦截。 More

Unity教程之-监听Prefab的Apply保存事件

 

Unity3d开发中,我们会用到自己创建的Prefab,假如想在Prefab保存的时候做点什么事情的话 ,那么就得点击Apply得到监听事件。其实很简单,贴上代码 More

Unity教程之-ExecuteInEditMode特性在unity3d中的使用

 

我们通常书写的脚本,并不会定义[ExecuteInEditMode]这个Attribute,所以Awake和Start都只有在Runtime中才会执行的,因此给脚本添加[ExecuteInEditMode]特性可以在编辑器模式运行,下面我们来看下在runtime和ExecuteInEditMode下,awake方法和start方法的调用顺序和区别! More

Unity教程之-从Unity3D导出场景到Egret3D

Egret3D暂时没有场编的计划,但是我们知道unity3D是一个很好的场编。

有一些游戏即使不是使用Unity3D开发,也使用Unity3D做场编。这里就不点名了,而且并不在少数。

我们就这么干。 More

Unity教程之-Unity3d中使用Profiler精确定位性能热点的优化技巧

简介

在使用Profiler定位代码的性能热点时,很多同学往往忽略Profiler的提供接口,当发现某个Update函数特别耗时时,没有有效的手段进一步定位热点出自该Update函数的哪一个模块或哪一段代码。

使用Profiler评估客户端性能时,推荐使用Profiler提供的性能采样接口,来更精确地分析定位客户端存在的性能问题。

    举个例子说明精确定位的优势:

More

UGUI教程之-UGUI 实现刮刮卡橡皮擦

 

有个朋友问我怎么在Unity中使用 UGUI 实现刮刮卡功能,之前确实没有做过,但我想了下,应该使用 Shader 可以达到。于是花了点时间实现了下改功能。看下最终效果图

UGUI 实现刮刮卡

More

Unity教程之-unity3d中的JSON序列化传输数据

 

JSON 序列化功能和从 JSON 格式 转换到 对象。与 web 服务交互,或只是为了打包和拆包数据 到一个基于文本的格式很容易,这可以非常有用。

使用简单
JSON 序列化功能是围绕一个‘structured’的 JSON,意味着你描述变量将要存储在您的 JSON 数据中通过创建一个类或结构的概念。例如: More

Unity教程之-Unity游戏技能Skill系统架构设计

 

我想把技能做的比较牛逼,所以项目一开始我就在思考,是否需要一个灵活自由的技能系统架构设计,传统的技能设计,做法都是填excel表,技能需要什么,都填表里,很死板,比如有的技能只需要1个特效,有的要10个,那么表格也得预留10个特效的字段.在代码里面也是写死一些东西,要增加和修改,就得改核心代码,如果我要把核心部分做成库封装起来,就很麻烦了.

能不能做成数据驱动的方式呢?

改技能文件就行了,即使要增加功能,也只需要扩展外部代码,而不用改核心代码,

我是这么来抽象一个技能的,技能由一堆触发器组成,比如特效触发器,动作触发器,声音触发器,摄像机震动触发器等等,这些触发器到了某个条件就执行触发,触发条件一般是时间,如果有比较复杂的浮空技能,可以增加落地触发等.

自定义一个技能文件,代替excel表格,看起来是这样:

简单的技能:

每一行都是一个触发器,这些触发器,到了某个条件会自动触发.

上面的意思就是,第0秒开始面向目标,第0秒开始播放动作1000

复杂的技能: More

Unity教程之-调整画质(贴图)质量解决锯齿问题

 

当我们在Unity中,使用图片进行2D显示时,会发现显示出来的画面有明显的模糊或者锯齿,但是美术给的原图却十分清晰。

要改善这一状况实际上很简单。

造成这样的原因,是Unity在导入图片(或者纹理)时会自动进行压缩,以便减少运行时游戏的内存占用率,提供性能。

注意:下面实例使用的Unity版本为4.3.4。版本不同的话可能某些显示不完全相同,但关键点是一样的。 More

Unity教程之-Unity3d在安卓android的更新(APK覆盖)

 

其实这并没什么技术难点,也不是完美的热更新方案,只能说是退而求其次的一个方法。

起因主要是因为公司几个U3D项目在立项之初都没有能做好热更新的规化,导致现在要去做U3D的热更新非常难,并且项目已处于中后期,大部分的方案不管是用反射,还是用Lua,或是jsbinding,都需要把项目大部分代码结构推倒重来,这是非常不现实的。于是退而求其次,选择还是直接用最小APK来更新游戏。 More