自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Unity小白

一个小白的成长史

  • 博客(63)
  • 资源 (2)
  • 收藏
  • 关注

原创 【Unity】R3 CSharp 响应式编程 - 使用篇(集合)(三)

本文展示了一个基于Unity的ObservableList可观察集合的实现与应用,包含四个核心功能模块:1)基础列表类型测试,演示了添加、移动、替换等操作及视图同步;2)列表过滤功能,通过AttachFilter实现偶数/奇数筛选;3)排序与反转操作,支持默认排序和自定义比较器;4)数据事件订阅系统,通过R3库实现添加/删除/排序等操作的实时回调。该实现采用ISynchronizedView接口提供线程安全的集合视图,并通过SynchronizedViewChangedEventArgs传递变更细节,为Un

2025-06-04 19:33:46 271

原创 【Unity】R3 CSharp 响应式编程 - 使用篇(二)

摘要:本文展示了Unity中使用R3库进行事件监听的多种实现方式。通过ReactiveProperty实现数据绑定响应,包括TimerFrame帧数回调、Timer定时回调、Repeat重复调用等基础用法。还演示了Interval间隔调用、鼠标双击检测(通过Debounce实现),以及Concat顺序执行和Merge并行执行两种Observable组合方式。这些示例涵盖了游戏开发中常见的事件处理场景,为开发者提供了响应式编程的实用参考方案。

2025-06-04 19:30:10 221

原创 【Unity】R3 CSharp 响应式编程 - 安装篇(一)

本文介绍如何在Unity中使用R3响应式编程框架。首先需要安装NuGetForUnity工具,然后通过该工具安装R3基础库。完成基础库安装后,还需添加R3的Unity扩展库。全文重点说明具体安装步骤,不涉及响应式编程概念解释,适合已了解R3的开发者快速上手。安装资源均提供GitHub仓库链接。

2025-06-04 11:34:34 287

原创 [Unity] 八叉树(四叉树、二叉树)场景划分

什么是“八叉树”?我们先看一幅图:这上面只看到七个色块(仔细数一数),因为有个色块被覆盖了,所以我们看不到。我们拆分开看看(褐色框选的背面,蓝色的是前面)。这就是一个八个矩形,我们把这个八个矩形想象成八个节点,用树形结构的方式来概况是这样的,我们看图:...

2020-12-05 18:04:47 5559 1

原创 Input 输入定义声明

输入定义声明结构体注解InputData输入数据在这里,Unity定义了手机平台和掌机平台的最大可视光。默认定义:#define MAX_VISIBLE_LIGHTS_UBO 32#define MAX_VISIBLE_LIGHTS_SSBO 256#define USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA 0#if defined(SHADER_API_MOBILE) || (defined(SHADER_API_GLCORE) &

2020-11-24 17:13:59 977

原创 DeclareOpaqueTexture 不透明纹理声明

不透明纹理声明函数体注解SampleSceneColor场景颜色采样LoadSceneColor加载场景颜色函数体详解SampleSceneColor场景颜色采样参数1(UV)uvfloat3 SampleSceneColor(float2 uv){ return SAMPLE_TEXTURE2D_X(_CameraOpaqueTexture, sampler_CameraOpaqueTexture, UnityStereoTra

2020-11-24 17:12:44 1278

原创 DeclareDepthTexture 深度纹理声明

深度纹理声明函数体注解SampleSceneDepth深度场景采样LoadSceneDepth加载场景深度函数体详解SampleSceneDepth深度场景采样参数1(UV)uvfloat SampleSceneDepth(float2 uv){ return SAMPLE_TEXTURE2D_X(_CameraDepthTexture, sampler_CameraDepthTexture, UnityStereoTransf

2020-11-11 14:18:35 1222

原创 Core 核心的函数

Core结构体列表:结构体注解VertexPositionInputs顶点位置输入VertexNormalInputs顶点法线输入函数体注解GetVertexPositionInputs获取输入顶点坐标信息GetVertexNormalInputs获取输入顶点法线信息GetVertexNormalInputs获取输入顶点法线信息(重载函数)GetCameraPositionWS获取渲染相机的世界坐标GetScale

2020-11-10 19:41:04 4596 1

原创 ShaderLibrary - DefineSysmbols

ShaderLibrary - DefineSysmbols常用宏常用变量宏注解文件SHADER_HINT_NICE_QUALITY暗示着色器使用好的质量Shader 着色器中定义SHADER_API_MOBILE指示Shader APIShader 着色器中定义SHADER_API_SWITCH平台API SwitchShader 着色器 掌机Switch 作用APISHADER_API_OPENGLOpenGL APIShader 着色器 O

2020-09-16 11:20:01 1364

原创 Unity URP ShaderLibrary Core HLSL 整理目录

此整理是基于 Unity URP 8.2.0 整理,后期可能会变动,但是估计不会太大。ShaderLibrary Core 8.2.0ShaderLibrary - DefineSysmbols 常规的宏定义和变量Core 一些较为核心的函数DeclareDepthTexture 深度纹理声明DeclareOpaqueTexture 不透明纹理声明Input 输入定义声明Lighting 光照声明MetaInput 元输入数据Particles 粒子声明ShaderGraphFunct

2020-09-16 11:18:20 2658

原创 Dots Demos by Unity2020.1.0f

Dots多线程式数据导向型技术堆栈,主要由 Jobs、ECS、Burst,这三部分组成。Job System(编写多线程代码)ECS(编写高性能代码)Burst Compliler(编译生成高性能代码)Debug ECS先看看Debug工具,从Debug工具看看对象是这么个情况。很详细。Demo Examples01接下来运行 ExamplesScene01 这是一个很常规的操作,按下空格键位实例化10000个球体,并且向屏幕下方移动(反复)。最终我们看看Profile:我们

2020-08-13 15:16:48 875

原创 Unity Dynamic Atlas 实验性尝试

为什么选用动态图集一般考虑到动态图集,那就是可能项目中零碎的图片过多,导致 DC 合并数量过多和DC过高。而采用动态图集,那么零碎的图片在 Runtime(运行时) 来处理合并成一张 1024(不限制)的大图,从而降低DC数。动态图集优劣参考优点:可以非常有效的对DC进行操作。可看下图。缺点:算法在运行时态,那么会有CPU的冲激,低端机尤其明显(项目UI非常零碎)。优化前后的对比。那么我们是否还需要动态图集最好根据项目需求来进行,如果项目最低运行机型的CPU还不错,那么可以考虑上动态图集

2020-08-11 20:18:37 696

原创 Unity 文本颜色描边性能优化方案

在这首先回答一个问题就是:为什么我们需要实现一个描边的方案?Unity没有吗?答:Unity肯定有自己的代替方案,只是性能看起来并没那么优越。Unity 的方案是挂载一个 OutLine 组件。Outlineoutline inherit Shadow:【Unity】Source Code:public class Outline : Shadow { protected Outline() { } public override void ModifyM.

2020-07-28 17:53:18 3880 7

原创 Xcode Unity 项目 Framework 封包

Xcode Framework  Framework 是 IOS 项目里面的一个第三方库,有点类似 C# 引用的第三方 DLL,这个 Framework(DLL)开发人员是可以自行打包,步骤稍微有些麻烦,过程有点类似手动配置Unity导出项目,不过由于是 Framework 类型的项目,所以有些配置有些不一样,不过大部分还是一样的。封包  由于最近有个需求,需要把 Unity IOS项目 包装成 Framework(第三方库),这个过程我姑且称为 “封包”,这样可以加速上下文的阅读和理解。0x0

2020-06-15 11:38:16 2210

原创 Unity 之封装使用Async、Await语法实现异步线程

Unity 使用Async、Await语法实现异步线程      我们都知道Unity是单线程,哪怕后面高版本渲染这块移动到了其他线程。      Async、Await是C# 5.0的新加的语法,是个非常优雅的语法糖。    &n...

2020-04-09 18:15:27 13988 3

原创 C# 基于 IEnumerator 实现一个类似Unity的协程

Unity CoroutineUnity Coroutine(协程)和 IEnumerator 基本一样,类似一个状态机的概念,稍微有过深入了解C# IEnumerator 可以大概知道这里面是一个状态机的概念 。IEnumerable 是一个状态标识,标识这个对象是可以进行迭代尝试的(没有太大深究意义,只需要知道当你需要自己实现一个迭代器的时候需要继承它就可以了)。IEnumerator...

2020-04-08 16:03:52 1047

原创 assimp 5.0.1 Compile manual

assimp工具:assimp 5.0.1VS平台:VS2017Cmake 参数:VS2017_x64最后编译结果图,然后打开build/*.sln文件,开始编译,参数选择Release x64 因为我准备使用x64平台的。最总编译的文件,DLL放在与.exe同级目录,lib自行放置。...

2020-03-16 22:20:46 600

原创 C# 基础之装拆箱 IL 层

C# 基础之装拆箱装箱:当一个值类型转成引用类型,我们可以看成 我们把 1元钱装入钱包中,此时发生装箱操作。拆箱:当一个引用类型转成值类型,我们可以看成 从钱包中把 1元钱 提取出来。以上个人通俗白话的理解。测试案例:这里我声明了一个引用类型和值类型。上面是发生装拆箱的代码,很容易看清楚之间的类型转换后的装拆箱,不过我们从底层IL语言来看。我们先看看装箱操作做了什么事情。我们...

2019-10-22 11:31:10 691

原创 Unity Android 反编译 Smali 并增加自定义函数

Android 反编译并增加自定义函数今天我们来反编译java,并修改内部函数,大部分博客基本都没有详细的说法,今天实际操作一下。本文章只是以学习为出发点,若做触摸法律底线的事,作者概不负责。Start首先请上我们今天的主角,一个用Unity编译成功apk,以及 apktool.jar 工具然后我们开始反编译,命令:java -jar apktool.jar d test.apk...

2019-08-27 10:44:29 642

原创 【Unity】【继】 shader渲染光照后场景组件等表现黑色问题导致shader体积过大

如上图,上篇文章我们查到场景黑色bug是此处引起的,然后近期又存在一些问题,那就是shader打成assettbundle就会非常的大,约7M多左右,(勾选了 1,2,5,6)目前我改成上列状态shader大小大幅度的减少,只有1.7M左右,据我测试, 2号选项是占用比例最大的,也就是导出后影响体积最为严重(仅针对 1,2,5,6. (3,4)没测试)具体作用就不细说了,可以官网查对应A...

2019-06-20 16:42:11 930

原创 【Unity】关于Unity导出IOS工程后真机调试闪屏后闪退

作者 Xcode 版本:10.1作者 Unity 版本:2017.4.3f1关于问题上述的图片就是我们本次的 Crash 问题,这个问题目前在作者这个版本100%复现。复现的操作就是关闭 ARC,关于ARC的解释下文会说到。关于这个问题,我度娘,GG都翻了一遍,没有任何有用的信息,而且资料少之又少,类似的资料就是关于AirPlay的闪退,但是和这个问题似乎关系不大,所以初步怀疑是Uni...

2019-05-08 10:10:47 1979

原创 【Unity】图混结束

懒不想继续写图混了,把码云链接放出来,可以去参考!

2019-05-08 09:17:22 200

原创 【Unity】shader渲染光照后场景组件等表现黑色问题

Shader渲染后场景组件等表现黑色问题好久没有写博客了,距离上次的 图文混排第一部分,应该才过去一天吧?(笔者实在太慢)步入正题最近在做安卓项目的打包,发现场景加载后,在不给渲染光照信息(Lightmap Static)的时候,表现还算正常,我们先看看还算正常的情况图这次的主角是蓝色水晶,其他的不用理会。我们可以看到,在不给与光照信息的时候,这种情况还算正常(什么是光照信息??看...

2019-04-12 19:20:33 9766 1

原创 基于UGUI的图文混排——第一部分

UGUI的Text渲染Text的继承关系:Text -> MaskableGraphic -> Graphic然后我们 F12 看看 Graphic 被公布出来可重写或者可调用有哪些函数或者字段。主要是这三个参数,我已经框起来了如果看过UGUI的源码,我们可以指定,当一个渲染组件被改变后,就会重写它所有的网格信息,在创建或者开始回调网格的时候,会先执行 SetVerti...

2018-10-29 18:46:23 1337

原创 KMP 算法结束——C#

KMP废话不多说,直接上代码 int _i = start_pos; int _j = 0; while (_j < P.Length && _i < S.Length) { if (_j == -1 || S[_i] == P[...

2018-08-14 11:59:45 269

原创 KMP算法之Next数组——C#

这篇文章不解释什么是O(n)记法KMPkmp是一个两串字符串比较的算法,分别为P:模式串,S:文本串。我的文章一般都是废话少说,直接就进入主题。我们假设现在需要匹配如下: 传统的做法:逐一的遍历 S 串,再遍历 P 串, S[ i ] != P[ j ] (i=0,j=0),因为不相等,所以 i 会自增 1 (++),j 回溯 0,当 i = 7 发生匹配,...

2018-08-14 11:51:10 555

原创 【Django】linux 下安装django 和 mysql

安装django去 django 官网右侧找到连接,也可以下载到移动工具上。 wget https://www.djangoproject.com/m/releases/2.0/Django-2.0.5.tar.gz tar -xvf Django-2.0.5.tar.gz cd Django-2.0.5 => python setup.py install ...

2018-05-22 10:35:46 687

原创 【记录】python3 在linux下安装的问题

这里记录下python3 在Linux下安装出现的问题问题一: [root@master ~]#./configure –prefix=/usr/local/python3.6 checking build system type… i686-pc-linux-gnu checking host system type… i686-pc-linux-gnu chec...

2018-05-22 09:37:32 368

原创 Linux 下的 rsync 详细部署和免密码同步

最近在做同步的问题上用到了 rsync 一款强大的同步备份工具。然后遇到了一些问题:安装完后,同步需要密码,可我想不需要密码,因为我跑的是内部环境。然后去查了度娘,google,都是些什么乱七八糟的,无法解决我的问题。最后汇总思路后就解决了rsync 安装 具体怎么安装不做累述。 安装完后linux 运行下 rsync 会有一大串的命令提示,那就安装成功了。运行 rsy...

2018-05-18 10:01:07 11910 1

原创 【Django外传】部署 apache2 + ajango 服务

apache2 安装 自行百度Django 安装 自行百度Ok我们现在开始部署,首先展示下我的文件目录(其它博文乱七八糟)apache path:Django path: 需要注意下,Django 初始目录是有上级目录的首先,完模来到Apache2 的 目录里面 cd sites-available 进入目录 新建一个 conf 配置文件 ...

2018-05-03 19:02:15 267

原创 算法 Union-Find

Union-Find 动态连通性 动态连通性是计算机的一种数据结构,动态维护结构中相互链接的组信息。 通俗的说 : 就像朋友圈,在社交网络中,彼此熟悉的人与人之间组成的朋友圈,但是这个圈子是会逐渐扩大的,不一定是你扩大,有可能你的朋友认识了一个新的朋友,或者 “断袖” 了,这种变化是动态的,然而这个关系网是庞大的,连通的,这就是动态连通数据结构。 假设:我与用户A相识,...

2018-02-23 23:53:06 328

原创 线性代数 —— 矩阵简介

什么是矩阵?我们看看矩阵是怎么样的。 如果我们需要取其中一个元素怎么取? 这两种是等价的矩阵的表示有很多,线性代数 I 和线性代数 II 都有表示,它也可以用来做计算机的图像处理。它就像一组数据,里面存着许多数据。矩阵的相加相乘矩阵相乘相加或者矩阵和向量相乘,我在我的其他文字有做有解释,可以跳过去看看。 http://blog.csdn.net/kan4648

2018-01-17 21:45:12 655

原创 关于游戏本地数据Excel编程工具转换 --- 2

Excel编程工具转换CShap好的,我们继续上一章。 前一章我们已经把需要的数据缓存起来了,我们现在开始读表,把表中的数据拿出来缓存到对象里面去,所以,我们得需要一个对象下列代码:[Serializable]public class DataSvo { private Dictionarystring, Dictionarystring, Liststri

2018-01-17 20:20:01 527

原创 关于游戏本地数据Excel编程工具转换 --- 1

Excel编程工具转换CShap 这两天闲着比较蛋疼,工作也暂时告一段落了。研究了个小工具,Excel转C#本地持久化数据。先说下实现的思路: 首先我们肯定得需要一个Excel文件(可多个)。文件格式如下图一,这里保存三个数据第一行只是标识,没什么用。 从第二行开始,我会先把Sheet的名字缓存到一个字典里面,方便后面的根据sheet名来找指定的工作表。 类名一

2018-01-17 16:41:36 547

原创 UI层的信息推送,小红点系统

小红点系统模块预览图:图1 图2 图1为子层,图2为主层,当子层拥有信息时,往主层通知。思路:子层绑定主层。当消息状态来了,通知主层,主层亮起红点。这就意味着,我们要把这个系统写成树形结构。首先我们要有个根节点,根节点下有许多子节点,子节点下又会拥有许多子节点。这点必须要清楚。 理清上面关系后,开始整理代码首先:我们需要创建和绑定根节点 当我传入的第一个节点是空的,那么默认设置它为根

2017-08-02 20:27:04 6044 2

原创 UGUI滑动容器的优化思路

UGUI滑动容器的优化思路首先,为什么要去优化滑动容器,一般都是为了解决在手机上的加载速度和性能优化。这是优化完后的效果 首先要明确一点:一个View里面会包含一个数据,这个数据具体是什么,我们不需要去关心,只要知道在数据赋值的时候传递出去就可以了。所以我们可以用一个 objct 来代替这个数据。接口定义 为什么要定义接口,因为接口是可以多继承的,而且我们也需要这些方法去实现我们的具体操作

2017-07-17 14:02:05 866

原创 关于protobuf的一些问题解决思路汇总

一、外界符号问题> 这种情况一般是没有导入LIB库,先去 项目->属性->链接器->常规 选择附加库目录,把protobuf的lib库目录引入进来,一般都会和项目放在一切,然后在VS项目中导入,最后在代码中导入LIB#pragma comment(lib,"Lib\\libprotobuf.lib")#pragma comment(lib,"Lib\\libprotobuf-lite.lib")

2017-07-16 13:27:19 3304

原创 设计模式:策略模式

策略模式 策略模式 在框架方面与状态模式很相似,意图却略有不同。客户端程序可以选择这些不同的算法。或在某中情况下,由Content来为你选择最合适的算法。该模式的目的是使得这些算法之间互换、并提供一种选择最合适算法的方式。它可以相同的方式调用所有的算法。减少各种算法类与使用算法类之间的耦合namespace Assets.StrategyPattern{ /// <summary>抽

2017-04-03 17:01:53 289

原创 设计模式:桥接模式(Bridge)

桥接模式(Bridge)介绍: 桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们独立地变化。 抽象与它的实现分离,不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。桥接模式的核心意图就是把这些实现独立出来,让它们各自地变化。这就使得每种实现的变化不会影响其他实现,从而达到应对变化的目的。下面链接是UML图。Uml 图查看实现

2017-04-03 13:58:24 465

原创 设计模式:原型模式

原型模式:在现实生活中,也有很多原型设计模式的例子,例如,细胞分裂的过程,一个细胞的有丝分裂产生两个相同的细胞;/* * 原型模式 by.jxb 2017.4.2 */ public class ItemView : MonoBehaviour { private void Start() { PrototypeH

2017-04-02 17:56:41 435

assimp5.0.1 C++ Tools.zip

assimp 5.0.1已经测试通过编译,编译方式为Release x64,可自行选择编译,CMake测试编译平台为VS2017_x64

2020-03-16

GLAD_GLFW_Libs 开发库,已经编译,32\64位

GLAD GLFW Libs 开发库,已经编译好,32\64位,其中src是要引用进工程目录里面的,否则可能会有找不到符号问题,64位VS 2019已测试通过。

2019-12-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除