Unity使用ShaderGragh制作透明指针

news2025/1/10 9:36:32

Unity使用ShaderGragh制作透明指针

    • 1 概述
    • 2 使用环境
    • 3 制作流程
      • 3.1 创建一个ShaderGragh
      • 3.2 打开ShaderGraph编辑器
      • 3.3 编辑器界面介绍
      • 3.4 Shader节点和部分信息如下
      • 3.5 常用节点介绍
      • 3.6 使用Shader
      • 3.7 贴图规范
    • 4 控制Shader旋转
      • 4.1 API介绍
      • 4.2 示例代码:
      • 3.9 Shader Demo资源下载

1 概述

Shader动画,有时候比Transform的动画更加高效

1 不会像正常对象操作Transform额外占用一个Batches
2 HDRP的Shader去掉 Receieve Decal 属性可以节约一个Batches,默认是两个Batches

2 使用环境

Unity 2021.3 + HDRP管线

3 制作流程

3.1 创建一个ShaderGragh

右键单击,创建一个ShaderGragh【根据当前使用的管线,创建后可以继续调整】

优点:可以创建多个管线的Shader资源,方便切换或者升级管线
节点式的编辑器,类似UE的蓝图编辑器,可视化编程比较直观,暴露参数简单

在这里插入图片描述

3.2 打开ShaderGraph编辑器

点击创建的Shader,选择Open Shader Editor,打开ShaderGraph编辑器
在这里插入图片描述

3.3 编辑器界面介绍

左侧菜单如下:
Save Asset – 保存资源 [点击保存按钮后,Shader才会进行编译操作,否则不会有变化!]
Save As – 另存为
Show In Project – 在Porject文件夹高亮
在这里插入图片描述

右侧菜单如下:
ColorMode – 当前节点的预览颜色
Blackboard – 暴露参数的面板
Graph Inspector – 细节面板,查看节点和Shader的信息、编辑参数
MainPreview – 材质效果预览面板

一些Blackboard下的参数新增后默认值为0,颜色默认分为黑色,可以修改到合适的值,比如默认白色。

在这里插入图片描述

3.4 Shader节点和部分信息如下

锚点参数:0.5,0.5
平铺控制:1,1
偏移控制:0,0
颜色控制:白色
透明度:1

在这里插入图片描述

在这里插入图片描述

3.5 常用节点介绍

旋转节点【Rotate】:对UV进行操作,旋转贴图
平铺和偏移节点【TilingAndOffset】:对UV进行操作,平铺或者平移贴图
乘法节点【Multiply】:对贴图进行一个颜色叠加

编辑器内部,点击右键创建节点【CreateNode】,具有搜索功能

3.6 使用Shader

首先新建材质,然后找到ShaderGraph下的RotateShader,点击选择即可。
请添加图片描述

3.7 贴图规范

有一句话叫做:黑透白不透。
利用黑底贴图做底,其他部件使用白色,Shader透明类型选择Additive,即可完美剔除黑色部分。

问:白色部分调节颜色变成黑色会完全透明,怎么做才能获得黑色效果?
答:颜色不动,将Alpha值调成-1即可。

以下是两个Mesh的Shader叠加效果
在这里插入图片描述
这里做了一个透明底黑箭头的贴图【错误】做对比,效果很不理想。
在这里插入图片描述
两种贴图的对比:
左侧:正确;
右侧:错误;
在这里插入图片描述

4 控制Shader旋转

4.1 API介绍

主要使用函数 material.SetFloat(Key_Angle, angle_);
Key对应ShaderGraph的暴露变量的Reference字段,创建变量后会自动分配,也可以自行修改,如下图所示:
在这里插入图片描述

4.2 示例代码:

using UnityEngine;

public class SG_Rotate : MonoBehaviour
{
	/// <summary>
	/// Shader - Key引用
	/// </summary>
	public static string Key_Angle = "_FE_Angle";

	[Header("仪表材质")]
	public Material material;

	[Header("指针角度")]
	public float Angle;

	[Header("顺时针转动")]
	public bool IsRight = false;


    void Update()
    {
		Angle += 10 * Time.deltaTime;

		if(Angle >= 360 || Angle <= -360)
		{
			Angle= 0;
		}

		SetAngle_(Angle, IsRight);
	}

	void SetAngle(float angle_)
	{
		Angle = angle_;

		SetAngle_(Angle, IsRight);
	}

	void SetAngle_(float angle_, bool isRight)
	{
		if (!material)
		{
			return;
		}

		if (isRight)
		{
			angle_ = -angle_;
		}

		material.SetFloat(Key_Angle, angle_);
	}
}

3.9 Shader Demo资源下载

透明Shader指针旋转动画

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/436629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis 6.0+ 的 ACL 机制

目录 前言一、安装 Redis 服务二、创建 ACL 用户三、用户密码管理3.1 删除密码3.2 重置用户和密码 四、权限管理4.1 key 管理4.2 权限管理 五、ACL 用户存储5.1 配置文件实现5.2 外部 ACL 文件实现 前言 Redis 6.0 引入了 ACL 机制&#xff0c;类似 MySQL 一样全部权限管理&am…

表单验证:自定义校验规则

Element UI 为我们提供了表单校验规则&#xff0c;但业务需要&#xff0c;我们常常要自定义校验规则 需求 实现表单中一个输入框&#xff0c;不能输入大于30的数字 思路 hrml&#xff1a; 自定义校验规则&#xff1a; 约定的校验规则&#xff1a; 代码 <template&g…

集群聊天服务器项目(一)——模块分层设计

本项目对程序不同功能进行分层设计&#xff0c;分为网络层、业务层、和数据层。 C面向接口编程也就是面向抽象类&#xff0c;网络模块和业务模块尽量解耦。 网络层 网络层主要封装的是网络连接方面的一些功能&#xff0c;即socket相关操作,这里该项目采用的是muduo网络库作为…

《Netty》从零开始学netty源码(三十九)之PoolSubPage的内存释放

PoolSubPage.free PoolSubPage的内存释放相对来说比较简单&#xff1a; 首先根据段的偏移量bitmapIdx找到bitmap的long[]数组的索引q&#xff0c;将bitmap[q]这个long的二进制位的占用位r置为0&#xff0c;表示已经释放。如果PoolSubPage的段已经全部释放了&#xff0c;且池中…

测试开发岗 - 常见面试题

1. 什么是软件测试&#xff0c; 谈谈你对软件测试的了解 软件测试就是验证产品特性是否符合用户需求, 软件测试贯穿于软件的整个生命周期. >>> 那软件测试具体是什么呢 ? 就拿生活中的例子来说, 比如说我们去商场买衣服, 会有以下几个步骤 : 第一步: 我们会走进门店…

【网络安全】命令执行漏洞

命令执行漏洞 命令执行漏洞原理危害检测方法有回显检测方法; (分号) 从左到右执行| (管道符) 将见面命令的输入为后面命令的标准输入&(后台任务符号) 命令从左到右执行&&(与) 逻辑与&#xff0c;前面命令执行成功后才会执行||(或) 逻辑或&#xff0c;前面执行失败才…

LeetCode算法小抄-- 图的遍历

LeetCode算法小抄-- 图的遍历 图基本概念遍历广度优先算法(BFS)框架[111. 二叉树的最小深度](https://leetcode.cn/problems/minimum-depth-of-binary-tree/)[752. 打开转盘锁](https://leetcode.cn/problems/open-the-lock/)[773. 滑动谜题](https://leetcode.cn/problems/sli…

文章伪原创生成器在线-文章伪原创工具免费入口

文章自动生成器 在现代科技快速发展的时代中&#xff0c;自动化技术已经深入到了各个领域。而随着人工智能技术的提高&#xff0c;自动化技术在创意和写作领域越来越成熟。现在有一款名为“文章自动生成器”的软件&#xff0c;可以轻松地生成高质量的文章。 今天&#xff0c;我…

STM32之MPU6050获取欧拉角

STM32之MPU6050获取欧拉角 MPU6050MPU6050特点MPU6050电路图以及框图MPU6050框图MPU6050电路图 MPU6050相关寄存器电源管理寄存器1&#xff08;0x6B&#xff09;陀螺仪配置寄存器&#xff08;0x1B&#xff09;加速度计配置寄存器&#xff08;0x1C&#xff09;陀螺仪采样率分频寄…

Vue中的ajax【Vue】

4. Vue 中的 ajax 4.1 解决开发环境 Ajax 跨域问题 方法一&#xff1a; 在vue.config.js中添加如下配置&#xff1a; devServer:{proxy:"http://localhost:5000" }说明&#xff1a; 优点&#xff1a;配置简单&#xff0c;请求资源时直接发给前端&#xff08;808…

更懂业务的用友iuap平台,助力企业升级数智化底座

4月19日&#xff0c;一年一度的用友BIP技术大会如约而至。近千位来自三十个行业的企业家、CIO/CDO、企业主管、专家学者、媒体、分析师代表现场参与大会。伴随企业数智化推进&#xff0c;越来越多的企业需要升级数智底座平台。会上&#xff0c;用友介绍了更懂企业业务的用友BIP…

Android 开发为什么会要用到组件化与插件化?好处在哪?

对于开发者来说&#xff0c;写好代码的第一步就是具备良好的架构能力。但是这项基本的能力&#xff0c;也很少有人具备。就拿最常用的项目架构组件化来说&#xff0c;有多少人用过&#xff1f;又有谁去了解过组件化开发中真正会遇到的问题&#xff0c;以及如何解决&#xff1f;…

Nacos 1.4.x 升级至 2.x 详细步骤及遇到的问题,亲测可行

此前使用的nacos版本是1.4.5&#xff0c;现在nacos最新版本为2.2.2&#xff0c;且修复了旧版本的一些安全问题&#xff0c;下面把详细的升级步骤记录一下&#xff0c;大家一起学习&#xff0c;亲测有效。 主要参考nacos官方升级文档&#xff1a;https://nacos.io/zh-cn/docs/v2…

瑞吉外卖项目——读写分离

读写分离 读和写所有压力都由一台数据库承担&#xff0c;压力大数据库服务器磁盘损坏则数据丢失&#xff0c;单点故障 Mysql主从复制 介绍 MySQL主从复制是一个异步的复制过程&#xff0c;底层是基于Nysql数据库自带的二进制日志功能。 就是一台或多台MysQL数据库&#xf…

字符串 --- 找子串匹配算法

1.基本介绍 主串&#xff1a;形如 “hello world”的字符串作为一个整体 子串&#xff1a;上面主串的一部分如“world” 在计算机世界&#xff0c;主串找子串的模式很常见&#xff0c;比如要在word文件中找一句指定的话&#xff0c;那么面对海量的信息&#xff0c;我们匹配算法…

最新入河排污口设置论证、水质影响预测与模拟、污水处理工艺分析及典型建设项目入河排污口方案报告书实例分析

目录 专题一 入河排污口设置论证相关法律与制度解读 专题二 水域纳污能力核算方法 &#xff08;讲授与实操相结合&#xff09; 专题三 入河排污口设置方案、分析范围、论证范围、模型预测范围确定方法 专题四 入河排污口所在水域水质现状与取水、排污状况分析 专题五 入河…

React State 状态

React State(状态) React 把组件看成是一个状态机&#xff08;State Machines&#xff09;。通过与用户的交互&#xff0c;实现不同状态&#xff0c;然后渲染 UI&#xff0c;让用户界面和数据保持一致。 React 里&#xff0c;只需更新组件的 state&#xff0c;然后根据新的 s…

SPI通讯

1、介绍 SPI是高速、全双工、同步的通信总线。 SPI应用于存储芯片、AD转换器及LCD中。 同步、异步区别&#xff1a;是否有时钟线&#xff0c;例如SPI、I2C是同步通信&#xff0c;需要用到时钟线&#xff0c;串口是异步通信&#xff0c;没有时钟线。 SPI通信需要四根线&…

【数据结构】单链表(详解)

【数据结构】单链表&#xff08;详解&#xff09; 1.前言1.1本章节重点1.2 什么是单链表1.3 结构体设计1.4结构体传参 2. SList.h展示3. SList.c展示4. 各个接口函数的实现4.1 尾插4.2 打印4.3 头插4.3.1内存开辟函数4.3.2插入 4.4 尾删4.5 头删4.6 查找4.7 给定一个位置在这个…

今天面了个字节跳动拿35K出来的,真是砂纸擦屁股,给我露了一手啊

今年的金三银四已经快要结束了&#xff0c;很多小伙伴收获不错&#xff0c;拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文&#xff0c;为此咱这里也统一做一次大整理和大归类&#xff0c;这也算是划重点了。 俗话说得好&#xff0c…