自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (2)
  • 收藏
  • 关注

原创 C# 反射性能优化

之前在做消息的自动注册机时,发现用反射获到的MethodInfo也是可以转成委托的,于是抽空整理了一下,写了一些用于优化反射的工具类和方法。

2020-11-03 20:27:10 2176 3

原创 【c#消息机制】自动注册和反注册

随着项目代码量的增长,

2020-09-19 19:54:20 1241 1

原创 unity 模拟三体运动

以一个三体迷和码农的身份确定一下三体问题的无解ThreeBody DemoDemo1.轨迹预测  首先在运行之前得预测一下运行轨迹,修改参数得到不同的轨迹2.三体问题的特殊解  通过维基百科链接到一篇相关论文A remarkable periodic solution of the three-body problem in the case of equal masses。里面给出了在特殊解情况下的初始值。图中的速度以及位置使用复数形式表示,映射到unity中,实数部分为x轴,虚数部分为z轴.

2020-05-12 22:51:10 3147 5

原创 Unity GPU Instance 大量物体的合批处理

官方文档 GPU Instance结果展示1.演示10000条鲨鱼全部在镜头下时150帧  2.不同数量的数据对比数量GUP InstanceFPSBatches1000on/off800/4607/100310000on/off150/6033/1000350000on/off25/10108/50003Shader编写...

2020-03-29 20:38:55 2707

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

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

2020-01-16 21:43:49 4325 4

原创 【XFramework】—— 介绍

这是一个轻量级的Unity开发框架,包含了Entity,FSM,Graphics,Pool,Messenger,Procedure,Resource,Task,Terrain等模块,另外还提供了一系列开发工具,本篇是对XFramework的一个整体介绍,后续会按照模块逐一添加文档。放上自己的博客链接,以后会在这里持续更新xdedzl的博客1. 启动流程在场景新建一个空物体命名为GameMa...

2019-08-18 13:38:14 2654

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

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

2019-04-28 19:37:10 4723 6

原创 Visual Studio/ VSCode/Pycharm 快捷键整理

项目VSVSCodePyCaharmxxxxx

2022-08-20 10:35:45 270

原创 python接收不到udp消息的解决方案

  之前做了个开发游戏时看log和发命令的控制台工具,本地测试时没有问题,游戏打包到安卓后,pc上的控制台出现了能发命令但接收不到log的情况。控制台是用python写的,通讯协议用的udp。  先说结论,是因为windows的防火墙  没啥好说的,直接上解决方案1.直接关闭windows防火墙  打开控制面板,找到Windows Defender,直接关掉。这虽然能解决问题,但显然不是一个好的方式2.单独设置某个应用示是否可以通过防火墙进行通信  按照下图找到python,专用和公用都.

2021-08-07 00:24:06 933 1

原创 unity控制台 -- 动态编译c#

  在游戏开发过程中,调试是一件很让人头痛的事情,使用unity和c#开发的时候,总是会打开游戏----->发现有问题----->关游戏----->加log----->加测试代码----->开游戏----->测试,看log。或者打断点,在IDE里调试代码。又或者是有一个GM系统可以执行各种已经写好的指令,总之,很麻烦就是了,且没有时效性。  使用脚本语言开发的时候,可以直接在控制台中输入一行代码,就可以查看数据,或者执行一个命令,于是就想,能不能用c#实现类似的功能呢.

2021-07-28 22:21:37 1115

原创 Lightmap压缩和重排

前段时间项目做缩减包体大小的工作,自己在大佬的指导下做了个缩减lightmap的工具,抽时间整理一下思路。下面涉及到的代码是用python写的1.获取模型的lightmap数据  一张lightmap包含了一个或多个模型的光照数据,所以首先需要将每个模型自己的那一部分数据从一个完整的lightmap中提取出来。2.计算lightmap可以压缩的等级  拿到数据后可以通过比较压缩前和压缩后的图片相似度来计算是否可以压缩以及压缩等级。我使用的是图像的PSNR来判断的。实际测试中将psnr值大于30判.

2021-05-16 15:06:20 604 1

原创 六边形地图生成(1)——基础地形

看了大佬的六边形地图教程,跟着原教程敲了一遍代码,使用的引擎是unity,想把六边形地形的生成思路记录下来。1.基础六边形网格  基础网格很容易绘制,六个边缘点,一个中心点,如何在引擎中绘制动态网格网上一搜一大把,这里就不介绍了。2.边缘扰动  方方正正的网格看起来太拘束,利用一张噪声图或者其他方式给六边形的边缘点加一些微扰。2.网格与网格的连接  我们需要给每个六边形网格赋以不同的高度,如果直接对上面的六边形加上高度的会得到下图的结果。  是不是很丑,所以,我们需要在不同的网格之间.

2021-04-17 21:49:26 2247

原创 unity在后处理中实现投影效果

其实这个效果是偶然中发现的,可能也没有什么可以实际运用的地方,只是个人觉得比较好玩,记录一下。1.先看效果  除了投影以外,也可以做成一个范围外不可见的效果,但和投影一样,都有其他更方便的解决方案,所以也就是图个乐了。  大体思路就是在shader中还原世界空间,再利用sdf函数将空间分为多个部分,最后对不同部分进行不同的处理就可以得到下面的效果了。下图是使用的是球的sdf,球型范围内的区域也就是投影区域了。sdf可以参考3D SDF2.在shader中还原世界空间  要还原世界空间需要.

2021-03-19 22:44:24 1409

原创 unity在URP中实现自定义Volume

  在unity默认bulit-in管线中,后处理效果一般可以在在相机上挂一个脚本加上OnRenderImage函数,并使用Graphics.Blit用某个材质对最后相机展现的画面进行处理。  在URP中OnRenderImage不生效了,并且有了一个专门做后处理的Volume。但由于相关代码都写在了一个叫PostProcessPass的脚本中,除非修改源码,否则无法仅通过扩展一个VolumeComponent来实现一个自定义后处理。好在URP提供了一个RendererFeature的功能,我们可以通过.

2021-03-13 18:20:52 4986 2

原创 python使用有道智云翻译API

  又是一篇起源于奇怪需求的文章。在公司使用的某个开发工具不知何缘故和有道词典客户端有冲突(好像是端口冲突),使用不了多久就会卡死,只能卸载有道词典。一时没找到其他感觉不错的翻译软件。网页版的有道翻译和其他翻译又觉得打开网页的过程麻烦,找页签也烦,于是想着弄一个控制台的翻译工具。  附上有道智云API文档地址 翻译文档,有道智云平台注册送50元,可查100万字符,自己使用了3天上后台看了一下扣了一分钱。  后面准备也搞一下百度翻译,每月有200万字符的免费额度。1.使用有道智云平台  首先要注册.

2021-01-09 00:06:45 2310

原创 解决用 c# System.Diagnostics.Process 启动python脚本控制台会自动关闭的问题

static void Main(string[] args) { var p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.Arguments = "/k" + @"python E:\Projects\XDEDZL\ExcelExport\export.py --Model 1dasdas";

2020-12-04 19:41:06 637

原创 根据抛物线起点终点及初速度大小推算初速度方向

List itemList item

2020-10-25 20:30:22 1286

原创 C#工程批量添加dll和脚本

出于想在没有unity的环境下用unity的dll来写代码的目的(嗯,很sb的需求),自己建了个空的c#工程,再把动态库和代码放到工程目录下,用python脚本给工程文件批量添加dll和cs文件。1.分析  首先得知道在用Visual Studio给解决方案添加引用的dll和代码文件时都发生了什么。打开解决方案文件(.csproj)基本结构如下,可以看到其实就是个xml文件。看到最后会发现有两个ItemGroup节点,一个描述了项目所引用的dll,一个描述了项目所有的代码文件。所以,只需要写个工具修.

2020-09-24 19:53:47 526

原创 Unity Surface Shaders 表面着色器备忘

输出结构1.Standardstruct SurfaceOutput{ fixed3 Albedo; // diffuse color fixed3 Normal; // tangent space normal, if written fixed3 Emission; half Specular; // specular power in 0..1 r...

2020-09-20 09:42:04 140

原创 Unity 游戏红点系统(Reddot System)

  游戏中按钮上经常会有一些用于提示玩家点击的小红点,显示方式可能不同,统称为红点系统。这里结合unity的GraphView做了一个通用的红点系统。  源码在这里红点系统,里面实现了一个简单demo一.红点树编辑器  进入菜单 XFramework—>UI—>ReddotEditor 编辑红点树二.ReddotManager1.红点显示规则  需要显示红点的UI会注册一个节点的Key,可以是叶子结点也可以是非叶子结点。  在合适的时候会标记结点的状态(只能编辑叶子结点,非.

2020-08-02 15:58:32 4905 2

原创 由UnityEngine.Object该怎么判空引发的一些思考

  先给出一组测试数据,分别用三种比较方式进行100万次比较。GameObjectComponent(组件)obj == null43obj is null4System.Object.ReferenceEquals(obj, obj2)4

2020-07-25 12:46:43 2232 1

原创 unity剧情系统开发

从去年三月份到现在,《匣》断断续续的也经历一年多的开发

2020-06-21 23:09:04 3625

原创 虚幻5 技术文章整理

这些东西虽然都还看不懂,但还是存起来吧,万一以后看懂了呢虚幻5 Lumen,Nanitehttps://www.bilibili.com/video/BV1Tz411B7S7?zwhttps://www.bilibili.com/video/BV1Tz411B7S7?zwhttps://zhuanlan.zhihu.com/p/140943267https://zhuanlan.zhihu.com/p/142239218https://zhuanlan.zhihu.com/p/1425104.

2020-06-05 19:22:41 1128

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

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

2020-04-19 20:22:04 1455

原创 【XFramework】—— 流程

流程1.介绍  流程是这个框架比较重要的一个概念,我们以下图(有箭头指向的每个方块都是一个流程)为例,假设我们现在有一个游戏么,有两种玩法,一是自由行动, 玩家可以在一个大地形中看风景,与NPC交谈;二是战斗,玩家搭建自己的战斗队形迎战来敌。  正常玩游戏的时候当然是先进菜单选择,选择游戏模式后进入不同的玩法。但我们在开发过程中如果每次都要从开始界面进入就太麻烦了,我们应当可以从任...

2020-04-16 16:41:53 1105

原创 【XFramework】—— Entity

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

2020-04-16 16:38:40 199

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

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

2020-04-04 12:15:06 4197

原创 ShaderLab Pass 备忘

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

2020-03-27 17:24:08 99

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

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

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

原创 ShaderLab Pass 模板测试 备忘

unity文档ShaderLab: Stencil1.语法  所有参数都设置时写法及默认值如下Stencil { Ref 0 ReadMask 255 WriteMask 255 Comp Always Pass Keep Fail Keep ZFail Keep}2.参数Ref 要比较的值,或者叫参考值(如果Comp的值不为...

2020-03-26 16:07:52 179

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

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

2020-03-22 14:18:30 335

原创 瞅瞅2019都干了啥

从2018年元旦去杭州实习到现在,已过两年,从来也没总结一下,今天记录一下过去一年做的事情,也给2020的自己定几个小目标1.书  回想一下,过去一年貌似也看了不少书,但遗憾的是除了技术相关的书籍以外,没有从头到尾看完一本,总是在看到一半的时候被一些事情打断,之后就没再往下看了。2020计划至少完成以下吧《伯罗奔尼撒战争》– 唐纳德·卡根去年一月份买了刺客信条·奥德赛。这款游戏一...

2020-01-06 22:02:25 712

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

有时候会碰到以下情况  1.定义了一个类型为A的字段,但在实例化时使用的是它的派生类B。  2.定义了一个存储基类型A的集合,但实际上里面包含了各种各样的派生类。  上述两种情况在序列化的时候没有问题,但在反序列化的时候程序并不能将其转化为成派生类。  Newtonsoft.Json提供了一个JsonConverter特性,我们可以自定义某个数据的json读写方式以达成多态序列化的目的。...

2019-12-03 10:32:16 2567 3

原创 UGUI绘制雷达图 RadarMap

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

2019-10-30 20:51:55 1063

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

asD

2019-10-22 22:45:45 1359

原创 c#为枚举添加描述

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

2019-09-27 09:18:25 603

原创 【XFramework】—— 资源管理

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

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

原创 【XFramework】——Tasks

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

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

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

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

2019-09-01 18:05:01 333

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

前段时间Unity官方发布消息称,可寻址资源系统已经脱离预览阶段,并将在Unity2019.3作为已验证资源包发布,同时在Unity 2018.4 LTS版本中得到支持。花了点事件研究了一下这个系统。官方文档入门介绍还是不错的。本文翻译自官方文档并加入一点自己的理解。原文链接标记资源为可寻址的  这里有两种方式将资源标记成可寻址的,在安装好可寻址资源包后,你可以在属性面板进行标记或者将其拖...

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

Edys Vehicle Physics v5.2

Unity汽车模拟插件,非常好的物理工具,附上官网链接,https://www.edy.es/dev/vehicle-physics/ ,这个跟原始版本有一点点的区别,原始版本导入Unity2018后有一处报错,修改了,给VehicleController(核心类)的变量加了一点中文注释,仅供学习

2019-02-16

PathfindingProject_4.2.1

Unity A star(A*)寻路插件,支持Unity2018,相比较于Unity原生NavMesh,A star更快速,更方便

2019-02-16

空空如也

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

TA关注的人

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