
Unity3d 开发杂谈
文章平均质量分 72
记录Unity3d开发中各种杂七杂八的东西。属于进阶级别的专栏。关注之后,总会不经意间萌到你,东西实用,谁用谁知道~
松阳
我在路上走着,遇到了你,大家点头微笑,结伴一程
缘深缘浅,缘聚缘散,该分手时分手,该重逢时重逢
惜缘即可,不必攀缘
同路人而已
能不远不近地彼此陪伴着,不是已经很好了吗?
展开
-
Unity3d开发(二十) OnMouse_产生GC 的问题修复
最近发现一个特别奇怪的现象,在游戏运行时,每帧 OnMouse_产生GC ,大小是0.6KB的整数倍,比如1.2KB,1.8KB。解决方法 :具体Profiler效果如下图所示:经过比照发现这个问题与摄像机相关。由于是代码创建的摄像机组件,因此并未挂载....原创 2017-03-21 16:30:37 · 2999 阅读 · 2 评论 -
Unity3d开发(十九)调整SortingOrder解决UGUI中粒子层级问题
为了做出更酷炫的的UI效果,通常要在UI中加入粒子效果。但与纯2D的UI动画或Spine不同,粒子在场景中制作,会存在与UI的穿插问题。本文探讨如何更改特效或UI的 SortingOrder 避免特效的穿插问题。原创 2017-03-03 15:06:14 · 18582 阅读 · 1 评论 -
Unity3d开发(十八) 监听编辑器状态改变,制定自定义回调
做编辑器插件时,我总是想要拿到监听编辑器的状态变化。比如在打开编辑器开始运行自己的服务。这时就需要用户打开编辑器的事件。另一方面,我希望用观察者模式,并且能自动化注册。因为我注意到,导入资源时的 AssetImporter 回调就是这样做的。用户只需要实现一个接口,就可以收到回调。极大的简化了扩展流程。编辑器代码又不必考虑效率问题,借助C#的反射,可以很容易的实现这种功能。这篇文章主要介绍如何实现这样的架构...原创 2016-11-24 11:52:08 · 10877 阅读 · 3 评论 -
Unity3d开发(十七)UGUI 事件体系分析
很多Unity3D项目都使用了UGUI,但并不是所有人都研究过它的内部结构。由于准备定制自己的UI,不弄明白它内部的机制有点说不过去呢。这篇文章主要分析一下它的事件体系结构,以及点击事件的逻辑流程。原创 2016-10-10 16:26:40 · 4438 阅读 · 0 评论 -
Unity3d开发(十六) 重写UGUI组件
作为Unity3d新版本的UI系统,UGUI以其易用性,逐渐被多数团队所接纳。但随着应用的深入,团队中总有需要自定义一套UI系统的需求。所幸UGUI是一个开源项目,可以在Unity3d的官方的Bitbucket代码库中找到源码。有了源码当然我们可以采用一劳永逸的办法,重编DLL库,并替换掉对应的库实现重写。但我还是不太推荐这样,因为一旦如此做,就无法跟随Unity3d版本升级了。因此本文主要介绍如何通过子类实现重写.原创 2016-09-27 18:04:32 · 8172 阅读 · 4 评论 -
Unity3d开发(十五) AudioClip 参数解析
AudioClip 面板有很多参数,设置起来容易出错,这里记录一下,做备忘。原创 2016-06-25 18:38:55 · 24722 阅读 · 0 评论 -
Unity3d开发(十四) AssetBundle中的资源提取
做过破解的人都知道,游戏中的美术资源没法完全加密,即便使用特别复杂的加密方式,也有办法将其中的资源提出来。这里不讨论的太深,只借助现成的工具,做些浅显的资源提取。原创 2016-06-22 16:17:01 · 36758 阅读 · 8 评论 -
Unity3d开发(十三)导出NavMesh可行走区域信息
有时我们会需要Unity3d的地图信息,比如A*之类的逻辑运算。当这些操作要放到服务器上进行时,就需要地图信息。通常项目中的行走区域是使用Navmesh制作的。这篇文章中,介绍如何将Navmesh的信息导出成bitmap原创 2016-06-17 12:15:11 · 17732 阅读 · 0 评论 -
Unity3d开发(十二)使用Menu.SetCheck更改菜单勾选状态
一些改变状态量的需求,例如:是否输出日志。通常的做法是在代码中更改,不过这需要重新编译,而且也对非程序人员不友好 。更灵活的做法是使用本地变量存储,不过这写起来比较麻烦。最近我发现Unity有个接口可以干净的解决这个问题,我使用的是Unity5.3版本。原创 2016-04-27 16:24:04 · 6434 阅读 · 2 评论 -
Unity3d开发(十一)编辑器DrawCall参数解析
对于Unity运行场景中,有许多可以标记场景状况的参数。这篇文章主要探讨这些参数的意义,其中如果有错误欢迎指正。原创 2016-03-31 12:51:49 · 16861 阅读 · 0 评论 -
Unity3d 开发(十)使用uTomate自动化打包流程
在开发过程中,打包是个比较烦的事情。当不能全自动进行时,这种厌恶会达到极致。uTomate作为一种流程化的解决方案,能比较友好的解决打包问题,这篇文章主要探讨,通过这个插件完成基础的打包流程。更多关于这个插件的使用和API信息可以去它的官网查看。原创 2016-03-22 20:20:10 · 5645 阅读 · 0 评论 -
Unity3d开发(九) 动画模型资源导入预处理
在Unity导入资源后,我们通常需要做许多设置,这些操作通常很繁琐,并且容易出错,最好的办法是使用自动的pipline处理,因为不是项目中的每一个人都十分清楚资源的结构设计。这篇文章主要探讨如何通过自动的方式实现动画模型资源的定制处理。原创 2016-03-14 21:37:35 · 6321 阅读 · 0 评论 -
Unity3d 开发(八)复制内容到剪切板
将文本复制到剪切板中其实是有接口的,需要借助TextEditor这个类,代码如下原创 2016-02-18 20:36:33 · 8404 阅读 · 1 评论 -
Unity3d 开发(七)AssetBundle组织目录
本文探讨如何配置一个AssetBundle更为合理。原创 2016-01-19 12:29:28 · 3451 阅读 · 0 评论 -
Unity3d 开发(六) 5.x AssetBundle使用
本文基于官方文章编写,原文地址干啥的AssetBundle是在编辑模式下创建的一系列文件,它们可以被动态加载到Unity运行时中。所以它支持流式加载和异步载入模型,纹理,声音甚至是整个场景,除了唯一的例外:脚本。优点动态加载释放一个资源。发布新的DLC。可定制的下载需要的部分。根据用户的位置,语言,喜好配置不同的资源包。在不重装的情况下修复、更改、升级新资源。缺点它完全是下载的,所以如原创 2016-01-12 16:36:09 · 9361 阅读 · 0 评论 -
Unity3d 开发(五)编辑器的undo操作
在Unity3d编辑器扩展中,常常需要兼容Undo的操作即:`Cmd/Ctrl + z`。在Unity3d对应的接口`Undo.RecordObjects`可以完成这项工作,本文介绍了一种封装的方法原创 2015-10-03 20:33:03 · 6118 阅读 · 0 评论 -
Unity3d 开发(四)代码创建预设
我们在使用编辑器时会有需求使用代码创建预设。在Unity3d的编辑器接口中,有`PrefabUtility`类可以使用它来创建预设。这篇文章简介了如何使用,并封装了一个更智能的函数原创 2015-09-25 23:36:01 · 8106 阅读 · 3 评论 -
Unity3d开发(三)GameObject 作函数参数
今天忽然想到这样的问题,我将一个GameObject作为参数传入,在函数内直接更改它。那么它应该是值传递还是引用传递呢?原创 2015-09-24 16:06:44 · 7492 阅读 · 1 评论 -
Unity3d 开发(二)Unity 制作可发布插件
本文翻译官方文档关于插件制作的相关注意事项。翻译 2015-09-21 21:51:35 · 8211 阅读 · 0 评论 -
Unity3d开发(一)ShaderLab 入门 语法格式
ShaderLab 是Unity3d自己封装的一个调用CG/HLSL/GLSL的接口。这篇文章主要记录一下基本的用法.原创 2015-09-21 21:00:11 · 7582 阅读 · 0 评论