草庐IT

Unity_FairyGUI

全部标签

Unity中URP下实现能量罩(交接处高亮)

文章目录前言一、交接处高亮原理1、我们先用一个球作为能量罩、一个Cube和一个椭球作为与能量罩交接的物体2、这是我们目前场景的深度图3、使能量罩为半透明渲染队列且关闭深度写入不渲染深度图二、交接处高亮实现1、得到深度图2、在片元着色器中,对深度图进行纹理采样3、得到深度图观察空间下的Z值4、得到深度图观察空间Z值和能量罩观察空间Z值的差值5、用1-depth得到反色6、在属性面板定义一个参数用于控制高亮范围6、在属性面板定义一个Color用于控制高亮颜色请添加图片描述三、测试代码前言在之前的文章中,我们实现了深度图和抓屏的使用。我们用这些功能来实现一下能量罩效果。Unity中URP下使用屏幕坐

Unity中URP实现水体效果(水的深度)

文章目录前言一、搭建预备场景1、新建一个面片,使其倾斜一个角度,来模拟水底和岸边的效果2、随便创建几个物体,作为与水面接触的物体3、再新建一个面片,作为水面二、开始编写水体的Shader效果1、新建一个URP基础Shader2、把水体Shader分解为以下几个部分三、实现水的深度效果1、在URP管线设置下,打开深度图2、在SubShader中,申明深度图纹理和采样器3、修改水体渲染为半透明队列4、在Pass中关闭深度写入5、获取水体顶点在观察空间下的坐标6、把采样到的深度图转化到观察空间下7、最后,用观察空间下的深度图和水体顶点坐标的Z值相加即可四、最终代码及效果1、最终效果2、最终代码前言在

Unity笔记:数据持久化的几种方式

正文主要方法:ScriptableObjectPlayerPrefsJSONXML数据库(如Sqlite)1.PlayerPerfsPlayerPrefs存储的数据是全局共享的,它们存储在用户设备的本地存储中,并且可以被应用程序的所有部分访问。这意味着,无论在哪个场景、哪个脚本中,只要是同一个应用程序中的代码,都可以读取和修改PlayerPrefs中的数据。这意味着耦合性的增加、安全性的降低。它适合存储少量的基本数据(比如玩家的偏好设置、游戏设置、游戏进度等),但不适合存储大量或复杂的数据结构。注意:每次Set完数据要调用PlayerPrefs.Save()把数据写入磁盘。Get有两个参数,第

Unity | 接口的理解和使用方法

一、unity里的人物关系unity|核心类图讲解_菌菌巧乐兹的博客-CSDN博客二、接口不属于unity大家族,它是个外人它给你提供了一个可以获取到unity大家族里面没有的资源的地方但是,如果你想要,你必须按照它说的做例:如下接口publicinterfaceIPointerEnterHandler{voidOnPointerEnter(PointerEventDataeventData);}//publicinterfaceIPointerEnterHandler详解:公开接口接口名字//voidOnPointerEnter(PointerEventDataeventData);详解:我

【Unity】Unity C#基础(十四)注释

文章目录注释行注释段注释XML注释一级注释二级注释注释换行TODO注释注释行注释//注释内容段注释/*注释内容*/XML注释//////注释内容//////是智能注释也称xml注释,会在被编译,并生成xml文件在可执行文件中。会影响编译速度,但不会影响代码执行速度。一级注释1.remarks>对类型进行描述,功能类似summary>,据说建议使用remarks>;2.summary>对共有类型的类、方法、属性或字段进行注释;3.value>主要用于属性的注释,表示属性的制的含义,可以配合summary>使用;4.param>用于对方法的参数进行说明,格式:paramname="param_na

【Unity】俯视角相机地面视野范围的计算

    在SLG等游戏中,相机总是固定为俯视角(上帝视角)。为了更好地管理游戏数据,需要对地图进行分块,只处理视野内的部分。判定某个单位是否在视野内有很多方法了,但是要么不够精确,要么性能不够,要么无法与AOI配合。    一个可行的方案就是将相机在地面上的视野计算出一个AABB2D包围盒,然后基于此包围盒来计算AOI、显隐等。这个方案效率够高,而且对俯视角适配较好。    下面讲讲原理和具体实现。1、俯视角的相机视野    相机在俯视角下,一般在地面的视野是个梯形,如下图所示:         绿色的部分就是相机的视野范围,红框部分为其外接的AABB2D包围盒。然后我们把这个红框部分视为相机

Unity-默认渲染管线-刻晴卡渲shader

1.1贴图共使用以上7张贴图,分别是面部阴影贴图、身体颜色贴图、头发颜色贴图、参数贴图、ramptexture、参数贴图、脸部颜色贴图。1.2Pass该shader主要有三个pass,分别是角色主要颜色和光照输出的结果,轮廓边,阴影输出。1.3光照 1.4分支身体、脸部、头发三个分支//分支声明#pragmashader_feature___SHADERENUM_BASE_SHADERENUM_FACE_SHADERENUM_HAIR1.5采样ramp贴图方法//ramptexture采样函数float3NPR_Ramp(floatNdotL){floathalfLambertRamp=smo

unity-协程详解

什么是协程协程,即Coroutine,顾名思义,协助程序的意思。我们在进行主任务的同时,需要一些分支任务来配合工作,这就是协程的用处。协程不是进程或线程,它是一个特殊的函数,可以认为它是一个返回值是IEnumerator(不知道也没关系,后面会说)的函数。协程依然是在主线程上进行的,是一种异步多任务处理的方式,相比于线程,开辟多个协程开销不大,适合对某任务进行分时处理。我们只要知道协程是一个可以暂停执行,暂停后回到主函数,执行主函数剩余的部分,直到中断指令完成后,从中断指令的下一行继续执行协程剩余的函数就行。前置知识首先我们要知道协程是通过迭代器实现的。什么是迭代器?迭代器是一种设计模式,可以

Unity 光照

光照烘培光照模式切换为Baked或Mixed,Baked模式完全使用光照贴图模拟光照,运行时修改光照颜色不生效,Mixed模式也使用光照贴图,并且进行一些实时运算,运行时修改光照颜色会生效受光照影响的物体勾选ContributeGI,或者直接勾选Static打开Lighting窗口,创建配置文件Scene页签中包含很多设置项,数值型的参数一般越大越好,但也会增大烘培时间和占用空间RealtimeGlobalIllumination实时全局照明RealtimeEnvironmentLighting实时环境照明,实时更新环境光IndirectResolution间接分辨率,指定实时光照贴图使用的每

Unity | YooAssetV2.1.0 + HybridCLR热更新

目录一、项目更改二、使用YooAsset热更1.资源配置2.资源构建3.将两个文件夹下的资源上传CDN服务器4.修改代码5.运行效果    本文记录利用YooAsset+HybridCLR来进行资源和dll的更新。YooAsset使用的是新版V2.1.0。相比于旧版,dll(原生文件)和资源要建两个package分别来进行build。dllpackage采用RawFileBuildPipeline,资源采用BuildinBuildPipeline。    本文将文章中的Demo以StreamingAsset目录加载AB包和dll改为使用YooAsset打包资源,从host来下载。一、项目更改新