- 博客(38)
- 资源 (21)
- 收藏
- 关注
原创 【Unity / Data Binding】开源数据绑定插件 UBind
UBindUBind 是一个适用于 Unity 的数值绑定组件,用于快速实现UI和逻辑数据的关联绑定。UBind 组件采用MIT协议开源:[OpenUPM][Github Link][Gitlab Link]后续功能更新和改进将会持续提交到以上git仓库中,本文内容将不会持续更新。特性使用方法2.1. 组件方式2.1.1. 常用组件绑定器2.1.2. 属性绑定器2.1.3. 类型绑定器2.2. 代码方式2.2.1. Monobehav...
2021-05-31 18:10:58 3232 2
原创 【Unity / Animation】开源插值动画组件 UTween
UTweenUTween 是一个 Unity 环境下的插值动画组件,可以通过内置组件快速配置动画,或者通过代码编写动画。快速开始1.1. 特性1.2. 环境要求1.3. 功能预览1.4. 插件安装 参数定义内置功能3.1. 核心组件3.1.1. Tweener3.1.2. TweenManager3.1.3. TweenPool3.1.4. TweenAnimation3.1.5. TweenAnimationAsset3.2. 数据类型
2021-02-19 16:06:21 1275 1
原创 【Unity / Event】开源通用事件模块 UEvent
文章目录UPlugins / UEvent1. 简介1.1. 环境1.2. 文件1.3. 特性1.4. 结构1.5. 约定1.6. 接入2. 组件2.1. 事件管理器 EventManager2.2. 事件分发器 EventDispatcher2.3. 事件监听器 EventListener2.4. Object 事件监听器 ObjectListener2.5. Unity MonoBehaviour 事件监听器 MonoListener2.6. 监听事件处理器 EventHander3. 可选特性标签 A
2020-09-09 15:45:24 624
原创 【Unity / Particle】计算 粒子特效 ParticleSystem 的播放时间长度
需求分析项目开发过程中,特效往往是资源和性能开销的大户,一般都会使用池的方式来管理和重用特效资源,而不是每次在需要时就重新加载生成,这就需要有一套机制能够在特效播放结束后,自动回收特效,因而需要提前知道特效的播放时间长度。这是一种比较常见的情况,也可能会有其他的需求,比如特效A、B、C需要在每个特效播放完后立即播放另一个特效,实现连续播放多个特效的效果,由于特效是可能随时修改效果的,特效的播放时...
2020-01-03 10:24:26 4539 3
原创 【C# / Extension】 扩展方法04 —— 扩展IEnumerable
扩展方法系列C# 扩展方法简介C# 扩展方法01 —— 扩展 String & StringBuidlerC# 扩展方法02 —— 扩展ByteC#扩展方法03 —— 扩展IList扩展 IEnumerable 接口的意义IEnumerable 和IEnumerable 接口在 .NET 中是非常重要的接口,大多数集合类型都实现该接口以提供遍历、过滤、排序、搜索等功能。虽然这些...
2020-01-03 09:50:58 640
原创 【Unity / Particle】快速调整粒子特效尺寸
开发中经常需要对粒子特效的尺寸进行调整以适配具体应用场景,而粒子特效往往由多个粒子系统组件(Particle System)组成,如果逐一调整尺寸会比较麻烦,粒子特效的尺寸也无法通过父节点的缩放统一修改。因此可以写一个简单的工具类,快速对粒子特效尺寸进行整体调整,原理也很简单,遍历所有节点的粒子系统组件,并记录其原始缩放值(因为特效在设计阶段为了调整效果已经改过缩放值,默认尺寸下缩放并不一定为1...
2019-11-28 15:43:18 5759
原创 【Unity / Thread】Unity 中子线程回调主线程的方法
Unity 引擎的游戏逻辑和渲染,都是在主线程中进行的,和大多数其他游戏引擎一样,Unity 也是一个单线程的引擎。这与常规开发的思路可能不太一样,通常认为多线程能够很大程度上提升程序的性能效率,何况是游戏这种需要大量资源和大量计算的复杂程序。其实不然,单线程能为游戏引擎开发和游戏开发带来很多好处,未经过精心设计的多线程也可能会为中后期开发带来灾难性的后果。但这不是本文要讨论的重点,感兴趣的话可以...
2019-09-20 16:05:48 5505
原创 【Unity3D / Animation】实时动画,使Animation不受TimeScale影响
Unity 中的 Animation 组件播放动画时,依赖 Time.deltaTime 进行采样计算播放进度,如果游戏中改变了 timeScale 的值,则使用 Animation 制作动画也会受到影响,例如游戏胜利时的慢动作特写镜头,如果是依赖 timeScale 实现的,那么此时 UI 上的动画效果也都会一起变慢。Animation 组件与粒子系统类似,通过每一帧采样播放,查看源码可以看到...
2019-09-18 17:43:10 2266
原创 【Unity3D / UI】支持设置方向的 UGUI 渐变效果
UGUI Gradient在处理图片、文本的渐变效果时,为了缩减包体一般会使用插件脚本来实现,进而避免使用更多的图片资源,在网上搜索 Unity 渐变效果,一般能找到的都是单向自上而下的渐变效果,源码出处已不可考,大家感兴趣可自行搜索,本文直接给出改进版本,支持设置两端颜色和渐变的方向(上下,左右,左倾斜,右倾斜)。实现效果源代码namespace UnityEngine.UI ...
2018-10-24 17:58:42 835
原创 【Unity3D / UI】UGUI Text 文本调整字间距,并适配对齐方式
问题描述最近的项目美术提需求要调整游戏得分显示的数字间隔,发现UGUI的Text组件只提供了行间距的调整,而无法调整字与字之间的间隔,搜索之后发现一篇博文 UGUI之修改Text字间距 ,按文中提供的代码,可以实现文本字间距调整,但是只支持左对齐方式,居中对齐和右对齐时,文本依旧是从左向右计算网格位置,布局都是不对的,因而需要在原文代码的基础上,做出一些调整。问题分析UGUI Text 组件...
2018-10-09 11:49:27 14090 7
原创 【Unity / SDK / Firebase】多个应用接入 Firebase 后 APK 冲突无法安装的问题
问题描述最近公司项目主要面向海外发布,有统计分析的需求,TalkingData 的统计功能稍显薄弱,决定接入 Firebase,应对全球市场。 于是按照 Firebase 官方文档,接入 Unity 版本的的 Firebase SDK,接入过程中也有一些小问题,比如与已经介入的 Admob 和其他中介广告联盟SDK之间的冲突,但这些不是本文的重点,再次不赘述。一番折腾后 Firebase 后...
2018-07-17 16:52:43 3199 2
原创 【Unity / Gradle】 Unity 5.6.x Gradle build APK 报错 Connection refused 解决方法
问题描述公司有一个海外项目需要接入 Admob 并聚合多家广告联盟,同时需要接入 Facekbook 相关服务。由于 Google Play Service 的基础库比较多,加入其它广告SDK后,遇到了 64K问题,安卓代码中方法数量超过了 65536 个,导致 Unity 默认的打包方式 Internal 无法打包成功。 为了解决 64K问题,必须改用 Gradle 方式打包。经过测试,选...
2018-06-14 11:57:58 3854
原创 【Lua / Shell】 Lua 通过 Shell 调用 top 命令获取 CPU/内存 等系统性能信息
需求分析前几天接到一个需求,有一个游戏的服务器业务逻辑是使用Lua编写的,运行环境为 Ubuntu14.04,需要做一个统计分析模块,间隔一定时间,记录一次系统的CPU、内存、TCP连接数,在线玩家数,并写入数据库中。 Lua本身是应该是没有权限去获取系统信息的(没有查证),初步设想有两种可行方案:1.通过C++编写一个信息获取模块,由Lua调用C++模块记录信息。2.通过Lua 调...
2018-06-04 17:13:21 7297 1
原创 【C# / Extension】 扩展方法03 —— 扩展IList
扩展方法系列扩展 IList 接口的意义IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。List 作为业务编写中最常用的数据类型之一,有很多常用的功能并没有被原生实现,因此有必要做一些扩展,但同时为了提高泛用型,改为对其基接口进行扩展,使所有列表类型都可以获得这些扩展功能。Get && Add快速添加元素,并且防止重复...
2018-05-11 14:30:00 895
原创 【C# / Extension】 扩展方法02 —— 扩展Byte
C# 扩展方法系列C# 扩展方法简介 C# 扩展方法01 —— 扩展 String & StringBuidler扩展 Byte 的意义byte 类型对于很多初学者来说,可能不是很常用,但在实际开发中,经常需要以字节的形式处理数据和文件,经常要对字节、字节数组、字节流进行繁琐的处理,扩展 byte 相关的方法,可以极大的提高实际开发的效率。Byte 扩展Hex...
2018-04-03 18:15:19 864
原创 【C# / Extension】 扩展方法01 —— 扩展String & StringBuilder
C# 扩展方法系列C# 扩展方法简介String 扩展Check Null 扩展检查是否为空public static bool IsNullOrEmpty(this string input) { return string.IsNullOrEmpty(input);}与此相反,还可以写成public static bool IsNot...
2018-03-27 15:28:27 1549
原创 【C# / Extension】 扩展方法
扩展方法简介扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。 对于用 C#、F# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法没有明显区别。详见微软官方文档的定义和使用说明:扩展方法(C# 编程指南)编写方法定义一个...
2018-03-27 15:03:55 3359 1
原创 【Unity3D / Extension】 扩展方法03 —— 扩展RectTransform
Unity 扩展方法系列Unity扩展方法01 —— 扩展Transfrom Unity扩展方法02 —— 扩展GameObjectSize 尺寸扩展获取UI尺寸public static Vector2 GetSize(this RectTransform rect){ return rect.rect.size;}设置UI尺寸的几种常用实现public static voi
2018-03-27 14:34:12 744
原创 【Unity3D / Extension】 扩展方法02 —— 扩展GameObject
Unity 扩展方法系列Unity扩展方法01 —— 扩展TransfromGameObject的常用扩展GameObject的很多接口与Transform是重合的,本文略去了一些与Transform完全相同的扩展,如有需要可以参考系列博文第一篇。本文中有些接口也许作为Transform的扩展会更合适一些,看个人喜好和实际需要。也可以把同一接口在GameObejct和Transform...
2018-03-26 22:55:24 1307
原创 【Unity3D / Texture】裁剪纹理 去除边缘空白部分
效果预览裁剪之前: 裁剪之后: 左边,顶部,和右侧的空白部分,都去除了,因为适配窗口显示的原因,看上去图片变大了,实际尺寸是没变的。思路纹理的空白部分,即透明度为0的部分,那么,对图像的各个方向进行逐像素扫描,找出上下左右四个方向,最靠近内侧的,包含有效像素的行或者列的坐标,即可限定有效图像的区域,创建一个新纹理,拷贝出有效区域,即可。 以下是裁剪出图像中所有透明
2018-01-08 15:13:59 7974 4
原创 【Unity3D / UI】Unity中的Rich Text的使用和封装 —— Markup扩展
Unity 中的 Rich TextUnity中的富文本格式,通过类似html的标签语言来实现,支持常见的加粗,倾斜,颜色等,可以应用于GUI、UGUI和Debug日志输出。Rich Text 的使用原文: We are definitely not amused 显示: We are definitely not amused具体使用方法大多数人应该都已经知道了,详见官方A
2018-01-05 16:20:14 4081
原创 【C# / Pattern】C#中利用Attribute实现AOP(面向切面编程)
AOP - 面向切面编程 在软件业,AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,
2018-01-05 14:48:22 10222 6
原创 【Unity3D / Extension】 扩展方法01 —— 扩展Transfrom
C#提供了强大而又便利的扩展方法,是我们可以为C#原生、以及各种第三方库中的实例类型增加自定义的方法,这些类的实现,通常是无法看到也无法改变的,但是,通过扩展方法,我们可以为其增加一些极其便利的自定义行为。MSDN上,对扩展方法的定义如下:“扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”Transform是Unity
2017-06-16 15:24:20 1545 1
原创 【C# / Algorithm】输出任意阶回旋矩阵
6x67x9输出顺时针的回旋矩阵,比较简单,就不多作说明了,直接贴代码,可以按需要翻译成其他语言版本,肯定有更简单高效的写法: static void Main() { int n = 6, m = 6; int[,] num = new int[n,m]; int count = 1; int x = 0, y = 0;
2017-05-24 14:12:20 1500
原创 【Unity3D / Physical】快速处理碰撞事件的方法
Unity的物理系统,处理碰撞事件,需要自行实现MonoBehaviour中的void OnTriggerEnter(Collider)等方法,MonoBehaviour的生命周期方法,有些不太常用,可能会经常不记得、或者打错名字,调试还不容易找到原因,很不方便。我们可以把常用接口封装起来,让需要实现碰撞事件的类,继承已经封装好的类即可。using System;us
2017-04-26 11:19:03 1784 2
原创 【Unity3D / UI】 快速处理鼠标事件的方法
Unity的UGUI,处理出表事件,需要自行实现IPointerClickHandler,IPointerDownHandler等接口,很不方便。我们可以把常用接口封装起来,让需要实现鼠标事件的类,继承已经封装好的类即可。using System;using UnityEngine;using UnityEngine.EventSystems;public class Cl
2017-04-26 11:04:08 2047 2
原创 【Unity3D / Particle】实时粒子,使ParticleSystem不受TimeScale影响
Unity原生的粒子系统制作的特效,是依赖deltaTime运行的,因此会受到TimeScale的影响。当通过改变TimeScale的方式来使游戏暂停的话,场景内的特效也全部暂停了。这对于游戏场景内的技能、爆炸等效果来说,被暂停是正常的表现,但对于某些UI的特效,实际上是不应该暂停的。比如新手引导的时候,会把游戏暂停在某一个画面,指引玩家点击某一按钮,围绕按钮的流光就不应该跟着游戏本身暂停。
2017-03-04 03:28:02 5388
原创 【Code Art / C#】圆形组合图像效果生成
原图处理后效果【思路】取原图像某一位置一定范围内像素的平均颜色,绘制成一个圆点,循环全图即可实现。为了实现更为复杂一些的上图效果,做成了鼠标经过后拆分圆形尺寸。主窗口源代码如下:using System;using System.Collections.Generic;using System.ComponentModel;us
2016-03-18 20:44:36 996
原创 【Code Art / C#】文字转换成字符画
【思路】使用GDI将文字绘制到位图上,根据位图上的像素点颜色来转换成对应矩阵位置的字符,即可得到如上图所示的文本。以下为程序主窗口代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;usin
2016-03-18 20:34:59 1918
原创 【Code Art / C#】随机贝塞尔曲线效果测试
贝塞尔曲线是通过几个控制点来绘制曲线的一种方法。通过若干个贝塞尔曲线随机组合,然后随机移动每个控制点,会实现怎样的效果呢?用这样简单粗暴的思路,写了以下绘制代码。然后将画完的一帧做模糊处理,不擦除画布继续画一帧,然后用Timer循环绘制,便实现了如图所示的效果。以下为随机绘制一帧的代码,如需要动画效果和如图所示的效果请参照以上思路自行实现。using System;usi
2016-03-18 20:22:40 1395
原创 【C# / OpenGL】基于DEM数据的3D地形绘制(基于CSGL)
鼠标左键可以任意切换角度可以选择网格和色块(未做纹理贴图)方式绘制根据高程按色相填色其他复杂地形测试数据文件格式==========================================说明====================================1.基于C#下的OpenGL库,
2015-12-16 19:51:19 11529 19
原创 【C / EasyX】随机迷宫生成和路径搜索(DFS)
==========================================说明=====================================1.用了写游戏的基本流程所以界面是持续刷新的(可能会改成游戏)2.迷宫生成算法是深度优先遍历(DFS),为了让路线不那么容易走通,是从终点向起点生成的。PS1:迷宫难度不高,路线完全随机似乎不是太好,有待改进。
2015-12-16 19:44:56 5397 4
原创 【C# / Algorithm】RGB、HSV、HSL颜色模型的互相转换
RGB、HSV、HSL颜色模型的含义本文就不赘述了,大家可以直接百度到。在此提供一个封装好的可以对三种颜色模型进行互相转换的辅助类。以上是使用该类写出的程序示例。以下是颜色模型类的描述#region RGB / HSV / HSL 颜色模型类 /// /// 类 名:ColorHSL /// 功 能:H 色相
2015-11-23 22:03:55 10523 8
原创 【C# / Algorithm】任意圆形和三角形相交部分面积的计算方法
采用运算符重载技术,设计一个名为"&"的运算符,使用该运算符可以计算出一个圆与一个三角形的公共部分的面积,并给出示例代码。已知数据:圆的圆心坐标和半径,三角形的三个顶点坐标。今天无意中在贴吧发现了这样一道题,很显然难点在后半题。于是开始考虑圆形和三角形的相交面积计算的通用方法。我的思路:三角形和圆形相交的情况比较多,按交点数就有0到6个,每种情况还有很多不同的细
2015-11-10 19:47:01 6485 5
原创 【C# / GDI】简单图像处理方法
图像处理原理其实就是对图像像素点的遍历操作。图像是由像素组成,像素是由RGB(红绿蓝)的分量构成,所以改变颜色效果的方法,就是去改变三个分量的值。灰度,亮度,分量之类的处理都是直接对单个像素点的R G B 值进行修改重新赋值模糊,浮雕之类的效果则是取像素和周围的像素点进行必要的运算后重新赋值具体算法和原理看代码基本都是可以看懂的、大家自己理解一下好了,其实还是挺简单的、程序
2015-07-08 15:59:57 2117
原创 【C / EasyX】十字消除游戏的实现方法
十字消除游戏是以前百度上火过一段时间的一个Flash小游戏。游戏逻辑比较简单,是我初次接触EasyX图形库后使用EasyX写的第一个i程序。游戏开始后,在棋盘中随机生成成对的随即颜色的方块,预留一些空白位置。玩家点击空白位置,如果所在位置延伸出的十字线上,能遇到相同颜色的方块,则消除之,累加分数。消除一对方块会恢复一定时间,不进行任何操作时间条会自动减少,直至耗尽游戏结束。如果棋盘上剩余方
2015-07-08 15:13:02 4906 1
原创 【C# / OpenGL】将OpenGL的坐标系转换为普通屏幕坐标系处理的方法(基于CSGL)
在用OpenGL编写2D游戏或者其他图形程序时,很多人应该和我一样习惯于Windows的屏幕坐标系风格了(即左上角为(0,0),右下角为(屏幕宽度,屏幕高度))。在传统的GDI图形程序中,以及常规的Windows程序的界面控件布局,都是基于这样的坐标系。 在OpenGL中,坐标是基于浮点的,坐标一般的取值范围为(-1.0,1.0), 原点坐标(0,0)位于屏幕的正中心,对于习惯了传统
2015-07-08 14:55:16 1643
原创 【C# / OpenGL】CSGL中2D纹理加载PNG等透明图片显示的黑边问题
CSGL加载PNG格式图片作为纹理映射显示后是有黑边的,使用的是CSGL封装的OpenGLTexture2D类。后来查了很多OpenGL透明纹理的资料,网上找了各种其他语言的透明纹理实现,在CSGL库上均不起效,最后怀疑是CSGL底层封装时对像素的处理有问题。反正是开源库,那就打开源码看看,最后自己实现了一个加载纹理的函数,和一个绘制纹理到二维坐标系的函数。有效解决了黑边的问题,但是还
2015-03-19 22:07:33 2987 2
【Unity3D 插件】像素风天气粒子特效 Weather Maker - 2D 3D Sky System for Unity 2.3.0
2019-06-21
【Unity3D 插件】 2D平台动作游戏插件 Smart Platform Colliders 1.1.4.3.unitypackage
2019-06-21
【Unity插件】2D特效 2DxFX 2D Sprite FX v2.3.7.unitypackage
2019-06-21
【Unity 插件】编辑器扩展 文件夹增强 Rainbow Folders 0.9.2
2018-04-20
【Unity 插件】音乐播放器插件 Music Player 1.1.1 带频谱
2018-04-20
【Unity 插件】编辑器扩展 Odin - Inspector and Serializer 1.0.6.0
2018-04-20
【Unity 插件】UGUI 专用 UI Text Effects 1.15
2018-04-20
《Unity游戏设计与实现 南梦宫一线程序员的开发实例》-Unity 5.0版本代码
2018-04-10
《精通C#游戏编程》中文完整扫描版 PDF
2015-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人