自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(158)
  • 资源 (8)
  • 收藏
  • 关注

原创 Unity 实现2D地面挖洞!涂抹地形(碰撞部分,方法二)

关于涂抹地形的话这里我再分享一个更简单的方式,非常简单!

2023-08-15 09:39:15 2225 1

原创 现有Unity转微信小游戏

此篇文章的目的是带着大家快速的把自己已有的游戏转成微信小游戏。

2023-02-22 14:51:48 5277 2

原创 Unity Shader实现线框效果(详细图解)

先上图看看效果:下面详细分享一下制作步骤吧:一、首先模型本身需要特殊处理二、编写Shadershader "Giraffe/Wireframe" { properties{ _Color("Color",Color) = (1.0,1.0,1.0,1.0) _EdgeColor("Edge Color",Color) = (1.0,1.0,1.0,1.0) _EdgeColor2("Edge Color",Color) = (1.0,1.0,1

2021-06-07 11:45:46 8002 6

原创 ShaderGraph节点大全

最近事情比较杂乱学习的内容也比较零散,所以也没怎么拿出来和大家分享。之前一直是代码编写Shader,ShaderGraph出了很久了,一直被我无视了,最近学习了一下ShaderGraph感觉真的让我又有了很多新的想法,在很多效果实现方面真的方便很多。因为原来就有写Shader的基础 ,学习起来不算太吃力,这里把学习到的内容在这里记录一些,当然不全是我 自己原创的内容,搬过来方便自己和大家查阅。ShaderGraph也有些要注意的:1.ShaderGraph只能用于新HDPR(高清渲染管线)和LWRP(

2021-05-13 16:55:01 19183 12

原创 Unity 实现2D地面挖洞!涂抹地形(碰撞部分,方法一)

总体效果可以看这篇:https://blog.youkuaiyun.com/ww1351646544/article/details/106410601这个案例使用的Edge Collider 2D 来实现在EdgeCollider2D组件下,可以通过给于Points顶点,EdgeCollider2D组件会按顺序将的所有的顶点用线段串起来,这些线段就是碰撞的范围。初始化时候把这个:一、给点四个边界点的位置二、因为计算需要,需要将第每个边分成多个线段。三,下一步就比较关键见了,当点击红色位置时候在环绕

2020-07-19 16:03:27 7653 13

原创 Shader实现瓶内液体效果

话不多说,先上图…需求:1.液体效果可变色。2.液体透明有折射效果。3.适应各种容器形状。4.随移动幅度进行抖动。实现思路:一、水平面的实现这个是比较简单的,设定一定的高度,有超过此高度的则进行一个片原舍弃。但片元的高度的本地的坐标,真实对比的高度是世界坐标,因此这里需要有一个坐标的转换的操作。设定一个值即当前点的裁剪的世界坐标高度,由外面的脚本传进来。然后每个片元高度转成世...

2019-08-06 17:28:50 6902 10

原创 空间变换矩阵

位置是怎么用矩阵是怎么变换到另一个坐标的?想要定义一个空间,必须知道三个坐标轴的方向,而这些数值是相对于另一个坐标空间的。我们需要知道所有的空间都是相对的,即每一个坐标空间都是另一个坐标空间的子空间,反过来也可以说是父空间。当给定一个点(a,b,c)时我们是怎么知道他的位置呢?1.从坐标空间原点开始2.向x轴方向移动a个单位3.向y轴方向移动b个单位4.向z轴方向 移动c个单位比如,...

2019-03-19 22:59:52 5938

原创 矩阵的几何意义

矩阵的几何意义:变换是指把一些数据如点,方向失量颜色等通过某些方式转换的过程。线性变换f(x)+f(y)=f(x+y)kf(x)=f(kx)上面的例子有点抽象,如缩放就是一种线性变换,如f(x)=2x可以表示一个大小为2的统一缩放,即经过失量x的模是原来的两倍。同样旋转也是一种线性变换。还包括错切、镜像、正交投影等…仅有线性变换不够的。我们来考虑平移变换例如f(x)=x+(1,2,3)...

2019-03-19 18:47:10 13487 1

原创 什么是矩阵

什么是矩阵矩阵,在数学上,矩阵是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。长这个样子:失量也可以转为矩阵,可以看成nX1的行矩阵,或1Xn的矩阵。矩阵列的运行比较复杂,下面就来一一探讨。矩阵和标量的乘法直接标量与各个分量相乘即可,不多废话了…同时kM=Mk即,谁在哪边都一样。矩阵与矩阵的乘法...

2019-03-19 16:55:24 39702 2

原创 Shader常用函数属性

Properties属性支持类型属性类型默认值的定义语法例子Intnumber_Int(“Int”,Int)=2Floatnumber_Float(“Float”,Float)=1.5Range(min,max)number_Range(“Range”,Range(0.0,5.0))=3.0Color(number,number,number...

2019-03-19 02:19:31 3119 3

原创 Unity Mirror 多房间匹配

本文介绍了使用Unity Mirror开发多人在线肉鸽塔防游戏的经验分享。重点探讨了如何通过MatchInterestManagement组件实现多个房间同时进行游戏的高效管理,并详细解析了相关代码逻辑与功能模块。旨在为开发者提供实用的技术参考和优化思路。

2025-02-18 17:39:14 1020 5

原创 ET6框架(十三)ET-EUI循环列表及红点树

我们需要在上一节的页面逻辑中RegisterUIEvent方法中添加列表项监听, 注意这里需要使用拉姆达列表式,为了热更新可以生效。在我们日常游戏开发中经常会有按或高亮提示的需求,可能我们会使用判断条件一个个按钮去判断,但更好的方法是使用EUI中的红点组件。再在ShowWindow方法中,利用RedDotHelper中的AddRedDotNode方法添加节点,这是逻辑节点上的操作。在页面显示处理中添加内容,指定列表项数量和显示切换,并添加HideWindow方法,在页面关闭时清理列表项。

2024-09-03 09:38:59 775

原创 ET6框架(十二)ET-EUI基本使用

ET-EUI是基于ET6.0版本拓展出来的一个套UI框架。

2024-09-02 09:43:38 1293

原创 ET6框架(十一)Actor消息

我们打开Server > Server.Hotfix > Login中添加下面两个脚本,用于处理客户端发送的C2M_TestActorLocationRequest以及C2M_TestActorLocationMessage类型的消息。再定义无返回消息类型,C2M_TestActorLocationResponse从客户端到Map服务器,指定类型为IActorLocationMessage,注意与普通消息不同这里需要固定字段RpcId。需要注意的是这里拿到的是客户端的Unit.以及记得为消息打上标签。

2024-09-02 09:40:04 878

原创 ET6框架(十)通讯消息编写

ET消息主要分为两类,一个种是普通消息,一种时通过Gate网关转发的消息叫Local消息这里我们编写客户端与服务器端通讯消息1.使用ResponseType : 指定指定回复消息类型2.在类型后使用 // IRequest 关键字指定请求消息3.消息第一个参数必须为 int32 RpcId = 90;4.消息回复类型需要使用 // IResponse 关键字指定为回复类型。

2024-08-31 11:26:02 789

原创 ET6框架(九)Protobuf消息使用

Protobuf是一个用于生前通讯消息的代码生成器。Prototbuf是一个Google公司提出的开源的轻便高效的结果化数据存储格式。相对于其他常见的序列格式如Json、XML等格式,Protobuf具有易用性更好,自动化,兼容性数量小,序列化及反序列化速度更快等优势。

2024-08-31 11:23:16 804

原创 ET6框架(八)事件系统

我们打开Client > Unity.Model > Codes > Model > Demo > EventType.cs 即可以查看目前工程中的事件我们可以此添加事件结构体我们还需要定义一个事件接收方法,创建路径文件夹及脚本在Unity.HotfixView > Codes > Demo > Computer > Event 创建脚本 InstallComputer_AddComponent.cs。

2024-08-30 23:11:20 753

原创 ET6框架(七)Excel配置工具

查看客户端游戏代码在Client > Unity.Model > Codes > Model > Generate 这个目录则是刚生成的客户端数据脚本。客户端的游戏数据将会存放在 ET\Unity\Assets\Bundles\Config目录下。1.在表结构中需要注意的是起始点必须在第三行第三列,且必需要为Int值的ID。所编译的数据将会存放在ET > Config 文件夹的.bytes文件中。在第一行第一列中输入则是对整个列的操作,如上图只会在客户端导出该表数据。对于单条数据的导出也是同样的用法。

2024-08-30 23:07:21 845

原创 ET6框架(六)Scene层级树

Scene为层级树的根节点,本质上还是一个Entity,Entity下也可以挂载其他Entity,也可以像树节点一样多层次挂载。无论挂载多少层Entity,Entity实体的Domain指代的就是Entity当前层次结果中的根节点Scene.Entity的Zone则代表当前所在Scene的逻辑索引Id,在服务器端可以被 当做区服的索引ID需要注意的是,Domain返回的是当前Scene的根节点,如在自己创建的CurrentScene下调用则拿到CurrentScene.

2024-08-29 11:50:46 1706

原创 ET6框架(五)ECS组件式编程

ECS即Entity、Component、System的简称,遵循组合优于继承的原则Entity(实体) : 实体是一个概念,是指存在你游戏世界中的一个独立物体,是一系列组件的集合。Component(组件) : 一个组件是堆数据的集合,不存在行业,只用于储存状态。System(系统) : 一个系统就是对拥有或多个相同组件的操作工具,只有行为没有状态也不做存储。(切记:切勿与Unity Dots中的ECS进行混淆,两者没有一点关系)

2024-08-29 11:47:12 617

原创 ET6框架(四)服务器架构发展

回到LoginHelper,在获得连接的Gate网关服务key后将消息返回给客户端,客户端向网关进行传输了C2G_LoginGate,让客户端与网关服务器建立正式的连接。最早的游戏服务器使用单台物理机单个游戏服务器程序进程,单线程无阻塞Socket连接所有玩家,同步间隔为每秒一次。第三代服务器架构又称三层架构,统一连接的网关,数据库交互的任务则交由数据库代理进程处理。第二代架构中由游戏服务器处理玩家连接及数据库存储的效率是非常低的,经过第三代的改进。这里会获取到所有网关服务器,并随机获得一个网关的配置。

2024-08-28 10:37:32 576

原创 ET6框架(三)前后端通讯分析

Socket是应用层衍生出的一个抽象层,它提供了一系列网络通讯的函数,使开发者可以不用过多在意通讯的底层互联。

2024-08-28 10:35:26 433

原创 ET6框架(二)Demo工程的运行及编译

4.打开工程后打开Init场景,再在Editor > Preferences > External Tools > 工程中选择编辑器工作VS2019以上或Rider 2021.2.2及以上版本。9.再在适用于Unity的工具中(只安装了Unity开发扩展才有) > 杂项 > 禁止完整生成项目 > 选择 false。2.复制地址后下载,在本人使用时ET已更新到最新9.0的版本,因此下载后需要切换分支到6.0版本。20.运行服务器后,再打开运行即可以看到几个小小人的出现及同步。8.再在 工具 > 选项。

2024-08-27 10:05:06 502

原创 ET6框架(一)介绍及环境部署

1.ET(客户端,服务器端)是一个开源的双端全栈式网络游戏开发框架2.ET服务器端是基于.net(.net core)开发的多进程分布式高性能游戏服务端3.ET客户端则是基于Unity3D游戏引擎。4.前后端均使用C#语言编写,可以轻松地做到逻辑共用。

2024-08-27 09:36:31 2330

原创 Mirror学习笔记(五)概念指南

有时候你不想使用Mirror类型生成序列化,则可以通过 NetworkWriter和NetworkReader来添加支持的类型。例如要对DataTime添加内容,可以参考以下例子:然后你可以使用DateTime 在你的[Command] 或 SyncList。

2024-08-11 16:46:04 1707

原创 Unity读取Android外部文件

最近近到个小需求,需要读Android件夹中的图片.在这里做一个记录.

2024-08-11 16:43:57 1826

原创 Mirror学习笔记(四) 权限管理

Interest提供了一个模板,您可以使用它来自己的系统。

2024-08-01 09:58:15 1455

原创 Mirror学习笔记(三) 组件简介

身份验证器的一个派生至抽象类Authenticator,允许你自行实现所需要的身份验证。在资源菜单中,点击 Create > Mirror > Network Authenticator 自定义你的身份管理器。

2024-08-01 09:53:27 1567

原创 Mirror学习笔记(二) 传输协议

当使用传输协议,您需要将协议添加到Inner字段中,然后将Encryption Transport分配给Network Manager中的Transport.中间通过了Encryption进行加密。只需要输入你的EdgegapAPI密钥和你选择的唯一大厅名字(LobbyName),然后点击创建,就会部署完成,然后将为填写上大厅的URL.验证服务器公钥,如果不验证公钥,初始握手容易收到MITM攻击。而Ignorance是一种可靠的UDP传输协议,并且它提供了可靠的和不可靠的UDP协议。

2024-07-31 12:03:54 1226

原创 Mirror学习笔记(一) 简介

因此,在任何给定的时间,您都可以发现对象的Rpc/OnDeserialize/OnMessage处理程序何时由服务器通过NetworkClient.connection.remoteTimeStamp发送。这里就有100毫秒的时间差。早期版本通过NetworkTransform来实现,成本巨大因为需要包含一个4字节(float),甚至8字节(double),当在大型游戏中时,宽带压力会迅速增加。渲染器在原位置并平滑插值到Ghost对像的位置,这将提供非常平滑的结果,但创造和跟随会有更大的额外成本开销。

2024-07-31 12:01:24 1666

原创 关于Unity四种合批技术详解

1): 静态合批会优先使用,如果还兼容SRP Batcher则会同时使用2): 动态物体会优先使用SRP Batcher3): 非静态且不支持SRP Batcher才会检查启启用GPU Instancing4): 以上都不支持才会使用Dynamic Batching即: Static Batching > SRP Batcher > GPU Instancing > Dynamic Batching。

2024-06-14 14:26:07 11173

原创 xLua(一) 环境安装笔记

为了方便查阅记录一下xLua的安装地址及方法。

2024-06-11 09:01:50 1034

原创 Unity DOTS技术(十五) 物理系统

要解决性能的瓶颈问题,在DOTS中我们将不再使用Unity自带的物理组件.下面来分享一下在DOTS中当如何使用物理插件.

2024-06-09 09:50:35 941

原创 Unity DOTS技术(十四) Job与ParallelJob接口

4.需要注意的是在此多线程运算中不得使用Unity原有的类库进行运算,应当使用Mathematics进行运算。

2024-06-08 11:15:23 625

原创 Unity DOTS技术(十三) ComponentSystem及JobComponentSystem

1.继承ComponentSystem需要实现抽象OnUpdate()2.与SystemBase不同,ComponentSystem不包含LambdaSingleJobDescription,3.CompoentSystem的带代码都是在主线程上运行,不支持多线程.4.并不能在ForEach后面点出什么参数来编辑.5.功能上与SystemBase中使用主线程代码.Run功能类似,官方推荐使用.

2024-06-08 11:13:01 527

原创 Unity DOTS技术(十二) SystemBase修饰及操作

2.使用后必须对变量进行卸载,timeInt的类型是TempJob周期为4帧,我们可以使用WithDeallocateOnJobCompletion自动的在线程运行后进行卸载。1.在多线程中我们不能直接使用Int等类型,需要使用Native Container的内容,如上图我们使用了Native Container下的NativeArray的内容。在上节中我们讲到多线程操作,为避免对线程的操作导致数据错乱,我们需要为变量进行修饰.于是我们需要用到Native Container.

2024-06-07 08:55:36 523

原创 Unity DOTS技术(十一) SystemBase详解

在之前的分享中我们用到的系统父类有ComponentSystem主要操控主线程的,JobCoponentSystem主要操作多线程的.而SystemBase则可以兼容以上两者,操控主线程及多线程.

2024-06-07 08:54:13 973

原创 Unity DOTS技术(十) ChunkComponent块组件

块组件(ChunkComponent),与共享组件类似,但在共用组件时并不会将组件移动到新的块里面去.当将块组件的值进行修改时.将会把组件中的值进行一个统一的变化,不会产生一个新的组件。

2024-06-06 10:22:22 451

原创 Unity DOTS技术(九) BufferElement动态缓冲区组件

在之前的学习中我们发现Entity不能挂载相同的组件的.当我们需要用相同的组件时则可以使用.IBufferElementData接口动态缓冲区组件来实现。

2024-06-06 10:19:12 569

原创 Unity DOTS技术(八)状态组件

因为在ECS中没有回调,因而无从得知组件是否被销毁.所以我们需要使用ISystemStateComponentData.什么时ISystemStateComponentData状态组件?当物体被销毁时ISystemStateComponentData组件不会被销毁.因而我们可以在组件被销毁时在该组件中留下信息代表该组件的情况.

2024-06-05 11:23:07 378

RTVoice是一个语音合成插件,可以将文本转换为自然流利的语音

RTVoice是一款强大的语音合成插件,能够将文本转换为自然流畅的语音。它采用先进的语音合成技术,提供多种语音和音频效果选项,让合成语音更加个性化和真实。您可以选择不同的声音音色、语速和音调,以满足不同场景和需求的要求。 RTVoice还支持多种语言,包括英语、西班牙语、法语、德语、意大利语等,以及多种方言和口音。这使得它可以被广泛应用于语音助手、语音导航、教育培训、多媒体应用等领域。 此外,RTVoice还提供了音频效果调节功能,您可以调整音频的声音清晰度、音量、音频平衡等参数,以获得更好的听觉体验。 RTVoice插件使用简单,并且可以与各种平台和应用程序无缝集成。无论您是开发人员还是普通用户,都可以通过RTVoice轻松实现高质量的语音合成功能。 总而言之,RTVoice是一款功能强大、灵活多样的语音合成插件,为用户提供了出色的语音合成体验。无论是在工作、学习还是娱乐中,它都能有效地提高效率和用户体验。

2023-07-02

OpenCVForUnity2.3.8提供了许多内置的图像处理功能和算法,包括图像滤波器、特征检测器、模式识别和机器学习等

OpenCVForUnity是一个Unity插件,提供了在Unity中使用OpenCV算法和工具的便捷方式。OpenCVForUnity支持多平台,包括Windows、Mac、Android和iOS,并且可以方便地在不同平台之间进行转换和扩展。 OpenCVForUnity提供了许多内置的图像处理功能和算法,包括图像滤波器、特征检测器、模式识别和机器学习等。这些算法可以用来处理图像和视频,识别和跟踪物体,甚至可以用来进行深度学习分析和图像识别。 相比于原生的OpenCV,在Unity中使用OpenCVForUnity可以更加方便和高效地开发图像处理应用。开发者可以在Unity的可视化编辑器中直接使用OpenCVForUnity提供的组件和工具,而不需要编写额外的代码。OpenCVForUnity还提供了丰富的文档和示例,使开发者可以快速上手。 总之,OpenCVForUnity是一个非常有用的插件,可以大大简化在Unity中开发图像处理应用的过程。无论是业余爱好者还是专业开发者,都可以受益于OpenCVForUnity的强大功能和易用性。

2023-06-18

OpenCVForUnity

OpenCVForUnity是一个为Unity开发者定制的开源计算机视觉库插件,提供了强大的计算机视觉算法和工具函数,以及易于使用的API接口。该插件能够帮助开发者在Unity中轻松地添加图像处理和计算机视觉功能,例如图像识别、人脸识别、目标跟踪、物体检测等。 OpenCVForUnity的主要功能包括以下几个方面: 图像处理和计算机视觉算法 OpenCVForUnity提供了多种图像处理和计算机视觉算法,例如边缘检测、滤波器、形态学操作、颜色空间转换、直方图均衡化等。同时,它还提供了多种常见的计算机视觉算法,例如特征提取、描述符提取、机器学习等。 目标跟踪 OpenCVForUnity提供了多种目标跟踪算法,例如KCF、MIL、TLD等,同时还支持多目标跟踪。开发者可以使用这些算法来实现目标跟踪、手势跟踪、运动识别等功能。 人脸识别和检测 OpenCVForUnity提供了人脸检测和识别算法,例如HaarCascade、LBP、能量模型等,能够实现人脸检测、人脸识别、表情识别等功能。 物体检测 OpenCVForUnity提供了多个物体检测算法,例如基于HOG描述符的SVM

2023-06-14

Puppet3D-1.9V

当谈到Unity中的3D角色动画和骨骼系统时,Unity Puppet3D是一个非常实用的工具。它能够帮助开发者快速为3D模型创建骨骼绑定和动画控制,从而获得流畅自然的动画效果。 Unity Puppet3D的核心功能是让用户能够轻松地绑定骨骼和纹理。我们可以在编辑器中使用鼠标直接拖动骨骼节点,完成绑定。接着,用户可以利用控制工具对每个关节进行精细的控制,包括位置、旋转和缩放。而这些控制工具则极其方便,例如自由变形工具可以拉伸、压缩、平移模型,并且还支持控制多个关节,从而实现更加自由的变形;曲线控制工具则可以调节模型动画关键帧曲线,从而实现更加精细的动画表现。 与此同时,Unity Puppet3D插件还支持实时物理引擎。我们可以在关节上添加物理组件,从而实现更加真实的动作和碰撞效果。而这些物理组件的属性也可以更加精细地控制,例如关节的刚性、弹性、质量等。 最后,Unity Puppet3D还兼容Unity内置的Timeline剪辑动画制作工具,从而提供了更加全面的动画制作控制能力。我们可以使用Timeline制作复杂的剪辑动画,将动画直接与骨骼节点绑定。 总的来说,Unity

2023-06-14

Shader实现瓶内液体效果Demo

效果与思路说明: https://blog.youkuaiyun.com/ww1351646544/article/details/98632525 工程版本为Unity2018.3.5f

2022-02-07

模型涂抹Demo 模型UV涂抹

模型涂抹,模型UV涂抹Demo。 讲解传送门:https://blog.youkuaiyun.com/ww1351646544/article/details/119633337?spm=1001.2014.3001.5501

2021-08-12

Unity Shader线框效果例子

Unity Shader实现线框效果,Unity版本5.6.6以后版本可使用。对应讲解文章:https://blog.youkuaiyun.com/ww1351646544/article/details/117652775?spm=1001.2014.3001.5501

2021-06-08

Unity绳子/绳索效果例子

Unity绳子/绳索效果,对应讲解博客:https://blog.youkuaiyun.com/ww1351646544/article/details/109235955

2021-02-18

IOS打包Bundle与加载Demo

IOS打包Bundle与加载Demo

2021-02-09

PostProcessing2017.zip

Unity PostProcessing 后期处理2017版本 官方文档 https://docs.unity3d.com/Manual/PostProcessingOverview.html

2019-10-12

AmplifyShaderEditor.rar

Amplify Shader Editor《美术轻松写shader》,直接拖到unity里,然后创建Amplify Surface Shader即可使用。超级方便,亲测可用

2019-08-20

基础Shader例子与详细说明

内有17个Shader例子与详细说明,透明,光照凹凸纹理等。

2019-03-08

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

TA关注的人

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