C# .NET
文章平均质量分 96
ls9512
这个作者很懒,什么都没留下…
展开
-
【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 · 3129 阅读 · 2 评论 -
【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 · 609 阅读 · 0 评论 -
【Unity / Particle】计算 粒子特效 ParticleSystem 的播放时间长度
需求分析项目开发过程中,特效往往是资源和性能开销的大户,一般都会使用池的方式来管理和重用特效资源,而不是每次在需要时就重新加载生成,这就需要有一套机制能够在特效播放结束后,自动回收特效,因而需要提前知道特效的播放时间长度。这是一种比较常见的情况,也可能会有其他的需求,比如特效A、B、C需要在每个特效播放完后立即播放另一个特效,实现连续播放多个特效的效果,由于特效是可能随时修改效果的,特效的播放时...原创 2020-01-03 10:24:26 · 4478 阅读 · 3 评论 -
【C# / Extension】 扩展方法04 —— 扩展IEnumerable
扩展方法系列C# 扩展方法简介C# 扩展方法01 —— 扩展 String & StringBuidlerC# 扩展方法02 —— 扩展ByteC#扩展方法03 —— 扩展IList扩展 IEnumerable 接口的意义IEnumerable 和IEnumerable 接口在 .NET 中是非常重要的接口,大多数集合类型都实现该接口以提供遍历、过滤、排序、搜索等功能。虽然这些...原创 2020-01-03 09:50:58 · 611 阅读 · 0 评论 -
【Unity / Particle】快速调整粒子特效尺寸
开发中经常需要对粒子特效的尺寸进行调整以适配具体应用场景,而粒子特效往往由多个粒子系统组件(Particle System)组成,如果逐一调整尺寸会比较麻烦,粒子特效的尺寸也无法通过父节点的缩放统一修改。因此可以写一个简单的工具类,快速对粒子特效尺寸进行整体调整,原理也很简单,遍历所有节点的粒子系统组件,并记录其原始缩放值(因为特效在设计阶段为了调整效果已经改过缩放值,默认尺寸下缩放并不一定为1...原创 2019-11-28 15:43:18 · 5716 阅读 · 0 评论 -
【C# / Extension】 扩展方法02 —— 扩展Byte
C# 扩展方法系列C# 扩展方法简介 C# 扩展方法01 —— 扩展 String & StringBuidler扩展 Byte 的意义byte 类型对于很多初学者来说,可能不是很常用,但在实际开发中,经常需要以字节的形式处理数据和文件,经常要对字节、字节数组、字节流进行繁琐的处理,扩展 byte 相关的方法,可以极大的提高实际开发的效率。Byte 扩展Hex...原创 2018-04-03 18:15:19 · 856 阅读 · 0 评论 -
【C# / Extension】 扩展方法03 —— 扩展IList
扩展方法系列扩展 IList 接口的意义IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。List 作为业务编写中最常用的数据类型之一,有很多常用的功能并没有被原生实现,因此有必要做一些扩展,但同时为了提高泛用型,改为对其基接口进行扩展,使所有列表类型都可以获得这些扩展功能。Get && Add快速添加元素,并且防止重复...原创 2018-05-11 14:30:00 · 888 阅读 · 0 评论 -
【Unity3D / UI】UGUI Text 文本调整字间距,并适配对齐方式
问题描述最近的项目美术提需求要调整游戏得分显示的数字间隔,发现UGUI的Text组件只提供了行间距的调整,而无法调整字与字之间的间隔,搜索之后发现一篇博文 UGUI之修改Text字间距 ,按文中提供的代码,可以实现文本字间距调整,但是只支持左对齐方式,居中对齐和右对齐时,文本依旧是从左向右计算网格位置,布局都是不对的,因而需要在原文代码的基础上,做出一些调整。问题分析UGUI Text 组件...原创 2018-10-09 11:49:27 · 14001 阅读 · 7 评论 -
【Unity3D / UI】支持设置方向的 UGUI 渐变效果
UGUI Gradient在处理图片、文本的渐变效果时,为了缩减包体一般会使用插件脚本来实现,进而避免使用更多的图片资源,在网上搜索 Unity 渐变效果,一般能找到的都是单向自上而下的渐变效果,源码出处已不可考,大家感兴趣可自行搜索,本文直接给出改进版本,支持设置两端颜色和渐变的方向(上下,左右,左倾斜,右倾斜)。实现效果源代码namespace UnityEngine.UI ...原创 2018-10-24 17:58:42 · 804 阅读 · 0 评论 -
【Unity3D / Animation】实时动画,使Animation不受TimeScale影响
Unity 中的 Animation 组件播放动画时,依赖 Time.deltaTime 进行采样计算播放进度,如果游戏中改变了 timeScale 的值,则使用 Animation 制作动画也会受到影响,例如游戏胜利时的慢动作特写镜头,如果是依赖 timeScale 实现的,那么此时 UI 上的动画效果也都会一起变慢。Animation 组件与粒子系统类似,通过每一帧采样播放,查看源码可以看到...原创 2019-09-18 17:43:10 · 2236 阅读 · 0 评论 -
【Unity / Thread】Unity 中子线程回调主线程的方法
Unity 引擎的游戏逻辑和渲染,都是在主线程中进行的,和大多数其他游戏引擎一样,Unity 也是一个单线程的引擎。这与常规开发的思路可能不太一样,通常认为多线程能够很大程度上提升程序的性能效率,何况是游戏这种需要大量资源和大量计算的复杂程序。其实不然,单线程能为游戏引擎开发和游戏开发带来很多好处,未经过精心设计的多线程也可能会为中后期开发带来灾难性的后果。但这不是本文要讨论的重点,感兴趣的话可以...原创 2019-09-20 16:05:48 · 5412 阅读 · 0 评论 -
【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 · 1510 阅读 · 0 评论 -
【C# / Extension】 扩展方法
扩展方法简介扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。 对于用 C#、F# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法没有明显区别。详见微软官方文档的定义和使用说明:扩展方法(C# 编程指南)编写方法定义一个...原创 2018-03-27 15:03:55 · 3347 阅读 · 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 · 735 阅读 · 0 评论 -
【Code Art / C#】圆形组合图像效果生成
原图处理后效果【思路】取原图像某一位置一定范围内像素的平均颜色,绘制成一个圆点,循环全图即可实现。为了实现更为复杂一些的上图效果,做成了鼠标经过后拆分圆形尺寸。主窗口源代码如下:using System;using System.Collections.Generic;using System.ComponentModel;us原创 2016-03-18 20:44:36 · 984 阅读 · 0 评论 -
【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 · 1894 阅读 · 0 评论 -
【Unity3D / Extension】 扩展方法01 —— 扩展Transfrom
C#提供了强大而又便利的扩展方法,是我们可以为C#原生、以及各种第三方库中的实例类型增加自定义的方法,这些类的实现,通常是无法看到也无法改变的,但是,通过扩展方法,我们可以为其增加一些极其便利的自定义行为。MSDN上,对扩展方法的定义如下:“扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”Transform是Unity原创 2017-06-16 15:24:20 · 1531 阅读 · 1 评论 -
【C# / GDI】简单图像处理方法
图像处理原理其实就是对图像像素点的遍历操作。图像是由像素组成,像素是由RGB(红绿蓝)的分量构成,所以改变颜色效果的方法,就是去改变三个分量的值。灰度,亮度,分量之类的处理都是直接对单个像素点的R G B 值进行修改重新赋值模糊,浮雕之类的效果则是取像素和周围的像素点进行必要的运算后重新赋值具体算法和原理看代码基本都是可以看懂的、大家自己理解一下好了,其实还是挺简单的、程序原创 2015-07-08 15:59:57 · 2107 阅读 · 0 评论 -
【C# / Algorithm】任意圆形和三角形相交部分面积的计算方法
采用运算符重载技术,设计一个名为"&"的运算符,使用该运算符可以计算出一个圆与一个三角形的公共部分的面积,并给出示例代码。已知数据:圆的圆心坐标和半径,三角形的三个顶点坐标。今天无意中在贴吧发现了这样一道题,很显然难点在后半题。于是开始考虑圆形和三角形的相交面积计算的通用方法。我的思路:三角形和圆形相交的情况比较多,按交点数就有0到6个,每种情况还有很多不同的细原创 2015-11-10 19:47:01 · 6443 阅读 · 5 评论 -
【C# / Algorithm】RGB、HSV、HSL颜色模型的互相转换
RGB、HSV、HSL颜色模型的含义本文就不赘述了,大家可以直接百度到。在此提供一个封装好的可以对三种颜色模型进行互相转换的辅助类。以上是使用该类写出的程序示例。以下是颜色模型类的描述#region RGB / HSV / HSL 颜色模型类 /// /// 类 名:ColorHSL /// 功 能:H 色相原创 2015-11-23 22:03:55 · 10458 阅读 · 8 评论 -
【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 · 1486 阅读 · 0 评论 -
【C# / OpenGL】基于DEM数据的3D地形绘制(基于CSGL)
鼠标左键可以任意切换角度可以选择网格和色块(未做纹理贴图)方式绘制根据高程按色相填色其他复杂地形测试数据文件格式==========================================说明====================================1.基于C#下的OpenGL库,原创 2015-12-16 19:51:19 · 11432 阅读 · 19 评论 -
【C# / Pattern】C#中利用Attribute实现AOP(面向切面编程)
AOP - 面向切面编程 在软件业,AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,原创 2018-01-05 14:48:22 · 10159 阅读 · 6 评论 -
【Code Art / C#】随机贝塞尔曲线效果测试
贝塞尔曲线是通过几个控制点来绘制曲线的一种方法。通过若干个贝塞尔曲线随机组合,然后随机移动每个控制点,会实现怎样的效果呢?用这样简单粗暴的思路,写了以下绘制代码。然后将画完的一帧做模糊处理,不擦除画布继续画一帧,然后用Timer循环绘制,便实现了如图所示的效果。以下为随机绘制一帧的代码,如需要动画效果和如图所示的效果请参照以上思路自行实现。using System;usi原创 2016-03-18 20:22:40 · 1372 阅读 · 0 评论