自定义博客皮肤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 GPU Instance 大量物体的合批处理
原力计划

官方文档 GPU Instance 结果展示 1.演示 10000条鲨鱼全部在镜头下时150帧    2.不同数量的数据对比 数量 GUP Instance FPS Batches 1000 on/off 800/460 7/1003 10000 on/off 150/60 ...

2020-03-29 20:38:55 98 0

原创 Unity运行时地形编辑器——RuntimeTerrainEditor

上一篇关于地形文章写完后(好像也有点遥远了),这个运行时地形编辑器也基本上满足自己需求了,抽空稍微整理了一下做成了一个独立的工具,unity2018.3及以上可用,一开始也是适配了2017的,后来由于自己已经完全不用2017了,就放弃了对2017的支持。 Github源码链接 一、Runtime...

2020-01-16 21:43:49 343 0

原创 【XFramework】—— 介绍

这是一个轻量级的Unity开发框架,包含了Entity,FSM,Graphics,Pool,Messenger,Procedure,Resource,Task,Terrain等模块,另外还提供了一系列开发工具,本篇是对XFramework的一个整体介绍,后续会按照模块逐一添加文档。放上自己的博客链...

2019-08-18 13:38:14 346 0

原创 【Shader特效】—— 爆炸,沙化

终于可以自己写一些简单的shader特效了,今天用一个并不常用的几何着色器来做一个简单的爆炸,沙化的特效。调节shader参数之后会得到各种好玩的东西。 ...

2019-04-28 19:37:10 971 3

原创 c# 快速二进制序列化

不知看到这篇文章的人,是否也曾饱受c#常见的序列化方式之苦,在数据量较小的情况下,效率上没有什么问题,一旦数据量过大,速度上简直惨不忍睹。在数据量特别大的情况下(之前需要快速保存上百兆的数据,当然,一般可能不会有如此大),文章最后提供的二进制序列化方式会比1,2快几十倍,比3快几倍。 1.obj...

2019-03-31 21:24:30 804 0

原创 Unity RuntimeHandle

在Unity的编辑器模式下,因为Handle的存在,编辑物体的位置方向以及大小非常方便,近期需要在运行时实现对物体的编辑,研究了一下,本文用unity的GL和Graphics两个类实现一个简易的Handle,最后效果图如下,左图为Unity编辑器下的效果,右图为运行时实现的效果。旋转和缩放都实现了...

2019-02-25 22:00:23 388 0

原创 Unity 动态编辑Terrain地形(一)介绍

Unity自带了一个非常强大的地形编辑器,但是总结起来也有一些缺点 1.不能在运行时编辑 2.不能跨多块地图编辑(Unity2018可以实现跨地形编辑) 正好近期的项目中需要在运行状态下实现超大地形和跨多块地形编辑的功能,于是花了一段时间研究了地形的动态编辑。Unity本身虽然无法为我们实现...

2018-12-20 23:21:13 12667 34

原创 unity 模拟三体运动

以一个三体迷和码农的身份确定一下三体问题的无解ThreeBody Demo Demo 1.轨迹预测   首先在运行之前得预测一下运行轨迹,修改参数得到不同的轨迹 2.三体问题的特殊解   通过维基百科链接到一篇相关论文A remarkable periodic solution of the t...

2020-05-12 22:51:10 41 0

原创 【Shader特效】—— UI 溶解

前两天在shadertoy上看到了一个图片溶解的效果,移植到unity中并做了一些改动。 1.效果 2.shader Shader "Custom/UI/Dissolve" { Properties { _Color ("Color...

2020-04-19 20:22:04 85 0

原创 【XFramework】—— 流程

流程 1.介绍   流程是这个框架比较重要的一个概念,我们以下图(有箭头指向的每个方块都是一个流程)为例,假设我们现在有一个游戏么,有两种玩法,一是自由行动, 玩家可以在一个大地形中看风景,与NPC交谈;二是战斗,玩家搭建自己的战斗队形迎战来敌。   正常玩游戏的时候当然是先进菜单选择,...

2020-04-16 16:41:53 30 0

原创 【XFramework】—— Entity

一.介绍 场景中一切可能会重复添加的GameObject都可以使用Entity类来实现 1.实体类   创建一个类继承Entity,Entity继承了一些列的虚函数,下面三个是需要重写的函数。实体管理器在分配和回收实体的时候,只在逻辑上处理,回收实体后实体的OnUpate将不在执行,但并不会在场...

2020-04-16 16:38:40 29 0

原创 Unity JobSystem和Mathematics数学库性能测试

先说结果,在不使用Job做优化的前提下,Mathematics数学库着实惊到我了,矩阵乘法快了近十倍 1.测试结果   下图的测试数据是在2019.3.6环境下,模拟100万次4x4矩阵运算得出的,后面两个使用了job进行了优化,可以看到,新数学库的float4x4在不使用jobsystem的情...

2020-04-04 12:15:06 77 0

原创 ShaderLab Pass 备忘

遮挡剔除和深度测试   遮挡剔除和深度测试 模板测试   模板测试 ColorMask ColorMask RGB| A | 0 | R,G,B,A可以任意组合,默认为ColorMask RGBA 值 描述 0 不写入任何颜色通道,即不输出任何颜色,只写入深度缓存 R 红...

2020-03-27 17:24:08 26 0

原创 已知入射方向和法向量求反射方向

问题描述 已知入射向量v1和法向量n(OB),求反射向量v2,上述向量均为单位向量。 问题解决 v2 = v1 + 2n’ 由v1在n上的投影可得 |n’| = -v1 * n / |n| n’ = -(v1 * n) / |n| * (n / |n|) n’ = -(v1 * n) * n ...

2020-03-27 16:23:47 146 4

原创 ShaderLab Pass 模板测试 备忘

unity文档ShaderLab: Stencil 1.语法   所有参数都设置时写法及默认值如下 Stencil { Ref 0 ReadMask 255 WriteMask 255 Comp Always Pass Keep Fail Keep ...

2020-03-26 16:07:52 28 0

原创 ShaderLab Pass 遮挡剔除和深度测试备忘

1.剔除和深度测试 Cull Cull Back | Front | Off 决定网格的那一面被剔除(不绘制) Back 剔除反面,是默认值 Front 剔除正面 Back 不做剔除 ZWrite ZWrite On | Off 决定是否进行深度写入,默认为On,当需要编写透明材质时...

2020-03-22 14:18:30 48 0

原创 瞅瞅2019都干了啥

从2018年元旦去杭州实习到现在,已过两年,从来也没总结一下,今天记录一下过去一年做的事情,也给2020的自己定几个小目标 1.书   回想一下,过去一年貌似也看了不少书,但遗憾的是除了技术相关的书籍以外,没有从头到尾看完一本,总是在看到一半的时候被一些事情打断,之后就没再往下看了。2020计划...

2020-01-06 22:02:25 47 0

原创 c#使用 Newtonsoft.Json 实现多态序列化

有时候会碰到以下情况   1.定义了一个类型为A的字段,但在实例化时使用的是它的派生类B。   2.定义了一个存储基类型A的集合,但实际上里面包含了各种各样的派生类。   上述两种情况在序列化的时候没有问题,但在反序列化的时候程序并不能将其转化为成派生类。   Newtonsoft.Json提供了...

2019-12-03 10:32:16 139 0

原创 UGUI绘制雷达图 RadarMap

RadarMap_UGUI 最近项目需要用雷达图对装备性能进行分析,利用UGUI的图形绘制做了一个雷达图组件,示例工程已上传至Demo链接,运行demo场景可看到下面的效果。这里有对UGUI绘图的简单介绍。 1.变量说明 Color :数据显示的颜色 LineColor :雷达图线的颜色 S...

2019-10-30 20:51:55 85 0

原创 Unity 更新dll后的引用丢失问题

asD

2019-10-22 22:45:45 61 0

原创 c#为枚举添加描述

在做UI时,下拉框往往会和某一枚举类型对应,如果我们想在代码中对下拉框的选项进行添加,并且不想每次修改枚举时都要修改下拉框的对应代码。就可以使用下面的特性来解决。 Description特性 namespace XFramework { /// <summary> /...

2019-09-27 09:18:25 46 0

原创 【XFramework】—— 资源管理

一、初始化   XFramework提供集成了三种资源加载方式,AssetBundle Resources AssetDataBase ,一般来说建议在输出之后使用AssetBundle,在开发过程中使用AssetDataBase,尽可能不使用Resources。   Game脚本中存有对Reso...

2019-09-02 21:16:35 96 1

原创 【XFramework】——Tasks

不是多线程,不是多线程,不是多线程 一.介绍   XFramwwork的任务模块提供了一种顺序执行的任务队列,内置三种类型的任务,使用者可以根据需要自行添加其他类型,继承TaskBase即可。内置任务类型如下 SingleTask 单个任务,任务执行完成即执行下一个任务 AllTask 内含...

2019-09-01 20:13:15 93 2

原创 【XFramework】—— 模块和入口

一、IGameModule   框架不建议使用继承Singleton的单例,当你需要新增一个模块或者叫管理器的时候,建议继承IGameModule并在Game脚本中添加静态引用。 /// <summary> /// 模块接口 /// </summary> public in...

2019-09-01 18:05:01 72 0

翻译 Unity Addressable Assets ——可寻址资源系统

前段时间Unity官方发布消息称,可寻址资源系统已经脱离预览阶段,并将在Unity2019.3作为已验证资源包发布,同时在Unity 2018.4 LTS版本中得到支持。花了点事件研究了一下这个系统。官方文档入门介绍还是不错的。本文翻译自官方文档并加入一点自己的理解。原文链接 标记资源为可寻址的...

2019-07-30 11:08:22 3446 2

原创 UGUI 源码研究及扩展 :利用Graphic做UI折线图

近日项目中需要用到一些数据分析的功能,查阅资料后发现了UGUI有一个用来显示图像抽象类Graphic,另外一个用来显示可遮罩图形的MaskableGraphic就是派生自Graphic, Image,Text等组件都是派生自MaskableGraphic。利用这两个类我们可以做一些自定义组件。 本...

2019-07-24 09:38:10 227 10

原创 Unity UI Elements——简易AB包打包工具

一开始这个打包工具是用IMGUI做的,后来用为了学习UIElements,重写了一下,最终效果如下。对一个文件夹下的资源打包分为三种方式,All Files表示所有文件打成一个整包,Top Directiony表示所有一级子文件夹单独打包,All Directiony表示所有子文件夹都单独打包。 ...

2019-06-29 14:25:08 400 0

原创 unity Color的缺省参数

  开发过程中可能会经常碰到Vector3和Color等类型无法使用缺省参数的问题,像Vector3这种,缺省参数的值通常是Vector3.zero,所以可以直接用default(Vector3),但是对于Color来说,default(Color)的值为new Color(0,0,0,0),而我...

2019-06-21 22:56:35 688 0

原创 unity 目录树

最近项目上需要对一些编组信息进行树状展示,为了通用,将目录树写成一个组件,完整的代码包括测试代码已经上传到了github上目录树代码,代码需要配合RectTransform的锚点使用,所以写了一个编辑器扩展,可以像创建其他UI组件一样创建一个目录树编辑器代码 1.树的节点   在大多数的时候外界...

2019-05-23 20:44:47 248 3

原创 一些坑的总结

1.emmmmmmmmmmmmmmmm,晚上找Bug找了半天,和网上的小伙伴一起做的一个游戏项目,小伙伴程序运行的好好的,到我这一启动Unity就崩溃,最后找到原因是由于小伙伴把用于存档的数据类修改了,存档用的又是c#自带的序列化,然后,在读取存档的时候程序就没有任何征兆的崩溃了,没有Log没有日...

2019-05-12 23:53:45 56 0

原创 【Shader特效】—— 音符跳动

  之前在看B站上看到unity官方用Shader Graph做的一个模型随音乐跳动的教程,想着直接用Shader代码实现一下吧,最后实现效果如下,配合之前的烟花效果,还有点KTV的感觉。示例工程和c#脚本在Shader学习笔记 Shader代码   里面大部分代码都跟这个效果没啥关系,关键代...

2019-04-29 21:01:15 487 0

原创 Unity自定义Assets下文件的打开方式

  最近在写shader的时候看着用vs打开的shader文件排版痛不欲生,即使用了一些shader扩展工具也是想爆粗口。个人比较喜欢用VSCode编写shader,但写cs文件还是习惯使用vs。如果你也有同样的诉求,需要根据不同的文件扩展名自定义打开方式的话,就可以用到unity自带的OnOpe...

2019-04-28 14:43:11 833 0

原创 ShaderLab Blend 混合命令

1.Blend命令 源颜色(source color): 由片元着色器产生的颜色值 目标颜色(destination color):从颜色缓冲中读取到的颜色值 语法 描述 Blend Off 关闭混合 Blend SrcFactor DstFactor 开启混合,并设置混合因子...

2019-04-24 10:27:52 93 0

原创 CG 函数库备忘

附上NVIDIA CG英文文档链接Cg Standard Library 数学 函数名 描述 abs(a) 绝对值 acos(a) 反余弦 all(bool1/2/3/4 a) 传入的布尔型向量的所有分量值为true时返回true(&&) any(bo...

2019-04-21 16:14:16 70 0

原创 Unity shader语义、Tags备忘

语义 描述 POSITION 模型空间中的顶点位置,通常为float4 NORMAL 顶点法线,通常为float3 TANGENT 顶点切线,通常是fliat4 TEXCOORDn 第n组纹理坐标 COLOR 顶点颜色,通常是fixed4或float4 ...

2019-04-20 17:02:52 91 0

原创 替代transform.find的UI组件的找寻方式

一、transform.Find 刚开始做Unity的时候,只会用transform.Find来找寻子物体,但这样做除了效率相对较低以外,还有一个对开发不太友好的事情,就是如果一个物体内子物体的层级发生了变化,就必须要修改代码路径,很麻烦。 二、解决方案 最后实现使用索引器,不需要路径,只要传入控...

2019-04-19 21:17:12 379 2

原创 Unity 动态编辑Terrain地形(五)贴图

**** 完整代码我已经上传到了我的Github上,需要的话可以直接去下载https://github.com/xdedzl/RunTimeTerrainEditor,里面有一个TerrainModilfyDemo的场景,我做了一个简单的UI用来测试,工程版本目前使用的是2019.2,但2018...

2019-03-25 21:44:57 4284 0

原创 CSV文件读取

csv文件很适合于程序和策划之间的配合,csv文件可以直接由Excel导出,策划在Excel中更改后导出csv,程序可以在不做任何修改的情况下做到更改游戏内容。 1.注意点 这个简单的文件读取类需要传入一个string初始化,可以直接用File.ReadAllText(文件路径),获取,如果是...

2019-03-11 19:31:24 595 0

原创 unity 载具多视角相机的实现

       游戏开发中经常会有视角切换的需求,尤其是载具的行驶过程中,这篇博客实现了一个拥有多个视角和跟随目标方式的相机,不局限于使用在载具上,代码参考了汽车模拟插件Edy's Vehicle Physics的相机,附上官网地址https://www.edy.es/dev/vehicl...

2019-02-19 22:02:17 394 0

原创 Unity简易对象池

一、简述       对象池是游戏开发过程中常用的一种优化对象创建和销毁的方式,外界只关心什么时候创建对象,对象的获取方式完全交给对象池来做。在多线程开发中使用到的线程池实际上就是用到了对象池的思想。       对象的创建和销毁是比较耗费性能的,对于一些经常需要创建的物体如果进行频繁的实例化...

2019-02-05 19:46:29 237 0

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