当前位置: 首页 > news >正文

Unity 控制物体透明度变化

1.需求

        给物体绑定一个脚本,这个脚本实现物体的透明度渐变变化,并且可以重置回原来的颜色。物体为Unity自带的材质Shader为Standard。

2.代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TransparentChanger : MonoBehaviour
{/// <summary>/// 保存原颜色/// </summary>private Color[] oldColors;/// <summary>/// 控制透明度变化/// </summary>[Range(0, 1)]public float nalpha;private void Start(){Init();}private void Update(){SetOpacity(nalpha);}public void Init(){int num = 0;foreach (Renderer r in GetComponentsInChildren<Renderer>(true)){num += r.materials.Length;}oldColors = new Color[num];num = 0;foreach (Renderer r in GetComponentsInChildren<Renderer>(true)){foreach (Material m in r.materials){try{oldColors[num++] = m.color;}catch (System.Exception e){Debug.Log(e.Message);}}}}/// <summary>/// 重置回原来的颜色/// </summary>public void Reset(){int num = 0;foreach (Renderer r in GetComponentsInChildren<Renderer>(true)){foreach (Material m in r.materials){try{m.color = oldColors[num++];if (m.color.a >= 1){ChangeMaterialType(0, m);m.renderQueue = -1;}}catch (System.Exception e){Debug.Log(e.Message);}}}}public void SetOpacity(float alpha){int num = 0;foreach (Renderer r in GetComponentsInChildren<Renderer>(true)){foreach (Material m in r.materials){try{float mA = Mathf.Min(alpha, oldColors[num++].a);m.color = new Color(m.color.r, m.color.g, m.color.b, mA);if (mA >= 0.98f){ChangeMaterialType(0, m);}else{ChangeMaterialType(1, m);}}catch (System.Exception e){Debug.Log(e.Message);}}}}/// <summary>/// 切换材质的Standard Shader 渲染类型/// </summary>/// <param name="mType">0-Opaque, 1-Transparent</param>/// <param name="m">材质</param>void ChangeMaterialType(int mType, Material m){if(mType == 0){m.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);m.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);m.SetInt("_ZWrite", 1);m.DisableKeyword("_ALPHATEST_ON");m.DisableKeyword("_ALPHABLEND_ON");m.DisableKeyword("_ALPHAPREMULTIPLY_ON");m.renderQueue = -1;}else if(mType == 1){m.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);m.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);m.SetInt("_ZWrite", 0);m.DisableKeyword("_ALPHATEST_ON");m.DisableKeyword("_ALPHABLEND_ON");m.EnableKeyword("_ALPHAPREMULTIPLY_ON");m.renderQueue = 3000;}}
}

相关文章:

Unity 控制物体透明度变化

1.需求 给物体绑定一个脚本&#xff0c;这个脚本实现物体的透明度渐变变化&#xff0c;并且可以重置回原来的颜色。物体为Unity自带的材质Shader为Standard。 2.代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Transpare…...

django及DRF流程源码分析

Django执行流程: 1.nginx作为接入层,通过反向代理&#xff0c;监听80端口获取请求连接 2.将请求交给wsgi server 3.wsgi server调用django的wsgi.py 处理请求 4.WSGIHandler的__call__函数就是整个逻辑处理流程 5.WSGIHandler __init__中的加载中间件&#xff0c;对request对象…...

Ajax入门-Express框架介绍和基本使用

电脑实在忒垃圾了&#xff0c;出现问题耗费了至少一刻钟time&#xff0c;然后才搞出来正常的效果&#xff1b; 效果镇楼 另外重新安装了VScode软件&#xff0c;原来的老是报错&#xff0c;bug。。&#xff1b; 2个必要的安装命令&#xff1b; 然后建立必要的文件夹和文件&…...

Linux加强篇001-部署Linux系统

目录 一、前言 1.1准备工具 1.2安装配置VM虚拟机 1.3安装软件 1.4系统初始化进程 1.5重置root密码 二、巩固练习 1&#xff0e;为什么建议读者在下载系统文件后先进行校验而不是直接安装呢&#xff1f; 2&#xff0e;使用虚拟机安装Linux系统时&#xff0c;为什么要先…...

LeetCode算法题解(动态规划)|LeetCode343. 整数拆分、LeetCode96. 不同的二叉搜索树

一、LeetCode343. 整数拆分 题目链接&#xff1a;343. 整数拆分 题目描述&#xff1a; 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入…...

好多年没更新了

好多年没更新了&#xff0c;哈哈&#xff0c;各位好。 感恩一切&#xff0c;感恩有你们。...

DOM文档对象模型

前言 DOM(Document Object Model) 文档对象模型&#xff0c;是W3C制定的标准接口规范&#xff0c;是一种处理HTML和XML文件的标准API。简单来说DOM就是操作网页的api和接口。 一、Node类型属性 1.判断节点类型 nodeType 整数返回值 9 1 3 2 <div id"one">我…...

【Django-DRF】多年md笔记第5篇:Django-DRF的Request、Response和视图详解

本文从分析现在流行的前后端分离Web应用模式说起&#xff0c;然后介绍如何设计REST API&#xff0c;通过使用Django来实现一个REST API为例&#xff0c;明确后端开发REST API要做的最核心工作&#xff0c;然后介绍Django REST framework能帮助我们简化开发REST API的工作。 Dj…...

mongo DB -- aggregate分组查询后字段展示

一、分组查询 在mongoDB中可以使用aggregate中的$group操作对集合中的文档进行分组,但是查询后的数据不显示其他字段,只显示分组字段 aggregate进行分组示例 db.collection.aggregate([{$group: {_id: "$field"}},]) 查询后显示 展开只显示两个字段 二、显示所有字段…...

禁止linux shell 终端显示完整工作路径,如何让linux bash终端不显示当前工作路径

在操作linux时&#xff0c;默认安装的linux终端会显示当前完整的工作目录&#xff0c;如果目录比较短还是可以接收&#xff0c;如果目录比较长&#xff0c;就显得比较别扭&#xff0c;操作起来不方便&#xff0c;因此需要关闭这种功能。 要关闭这个功能&#xff0c;请按如下步骤…...

error: ‘ui/ui_uimainwindow.h‘ file not found

问题&#xff1a;在刚好创建的Qt Designer Form Class类中&#xff0c;发现类的.cpp文件中有ui头文件未找到 原因&#xff1a;.ui文件没有被识别到&#xff0c;或者.ui文件不存在&#xff0c;导致ui头文件未创建而报错。 解决&#xff1a;若修改了.ui文件&#xff0c;随手ctrls…...

【高级网络程序设计】Week2-3 HTML

一、The Basics 1. HTML&HTML file HTMLMarkup languageHyper Text Markup LanguageHTML fileText file with markup tags.htm/.html extension Create an html file Open an editor Type: <html><head><titile><body> Save it as .html Open i…...

来聊聊JVM中的类加载过程以及双亲委派模型(学习Java必知内容)

文章目录 1. 类加载过程加载验证准备解析初始化 2. 双亲委派模型一个类的加载流程双亲委派模型的优点 总结 1. 类加载过程 在整个 JVM 执行过程中, 和我们程序员关系最密切的就是类加载的过程, 所以接下来我们来看下类加载的执行流程. 对于一个类来说, 它的生命周期是这样的:…...

scala的类介绍

scala的类、抽象类、接口、对象 class :类&#xff0c; 通过new关键字来实例化&#xff0c;每次实例化都会创建一个新的对象&#xff1b;用来定义普通的类。object&#xff1a;对象&#xff0c;用来定义一个单例对象的&#xff0c;它只有一个实例&#xff0c;且在程序运行期间…...

1.Gin 介绍

1.Gin 介绍 介绍 Gin 是一个 Go (Golang) 编写的轻量级 http web 框架&#xff0c;运行速度非常快&#xff0c;如果你是性能和高效的追求者&#xff0c;我们推荐你使用 Gin 框架。 Gin 最擅长的就是 Api 接口的高并发&#xff0c;如果项目的规模不大&#xff0c;业务相对简单&a…...

华三无线控制器WX2540H配合准入做Portal认证

数据通信 - 建设篇 - 无线 第四章 华三无线控制器WX2540H配合准入做Portal认证 数据通信 - 建设篇 - 无线系列文章回顾华三无线控制器WX2540H配合准入做Portal认证前言其他配置优化参考来源系列文章回顾 第一章 华三无线控制器配置本地转发 第二章 华三无线控制器配置802.1X认…...

OAK相机通过振动测试!

编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容可能会不定期更新&#xff0c;官网内容都是最新的&#xff0c;请查看首发地址链接。 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是助手君。 当…...

使用Pytorch从零开始构建RNN

在这篇文章中&#xff0c;我们将了解 RNN&#xff08;即循环神经网络&#xff09;&#xff0c;并尝试通过 PyTorch 从头开始​​实现其中的部分内容。是的&#xff0c;这并不完全是从头开始&#xff0c;因为我们仍然依赖 PyTorch autograd 来计算梯度并实现反向传播&#xff0c…...

Linux之实现简易的shell

1.打印提示符并获取命令行 我们在使用shell的时候&#xff0c;发现我们在输入命令是&#xff0c;前面会有&#xff1a;有用户名&#xff0c;版本&#xff0c;当前路径等信息&#xff0c;这里我们可以用环境变量去获取: 1 #include <stdio.h>2 #include <stdlib.h>…...

如何实现在公网下使用navicat图形化工具远程连接本地内网的MariaDB数据库

公网远程连接MariaDB数据库【cpolar内网穿透】 文章目录 公网远程连接MariaDB数据库【cpolar内网穿透】1. 配置MariaDB数据库1.1 安装MariaDB数据库1.2 测试局域网内远程连接 2. 内网穿透2.1 创建隧道映射2.2 测试随机地址公网远程访问3. 配置固定TCP端口地址3.1 保留一个固定的…...

实测对比:用Faster-Whisper-Large-v3模型转写1小时音频,CPU和GPU速度差多少?

Faster-Whisper-Large-v3 硬件性能实测&#xff1a;CPU与GPU转写效率全解析 语音识别技术正在从实验室走向日常应用&#xff0c;而开源的Faster-Whisper系列模型因其平衡的准确率和效率受到开发者青睐。但一个现实问题摆在面前&#xff1a;在没有专业计算卡的个人设备上&#x…...

3分钟上手MegSpot:跨平台图片视频对比神器的终极指南

3分钟上手MegSpot&#xff1a;跨平台图片视频对比神器的终极指南 【免费下载链接】MegSpot MegSpot是一款高效、专业、跨平台的图片&视频对比应用 项目地址: https://gitcode.com/gh_mirrors/me/MegSpot 你是否经常需要在不同图片或视频之间进行精准对比&#xff1f…...

Phi-3.5-mini-instruct跨境电商:商品描述多语言生成+合规文案审核

Phi-3.5-mini-instruct跨境电商&#xff1a;商品描述多语言生成合规文案审核 1. 引言&#xff1a;跨境电商的文案挑战 在跨境电商运营中&#xff0c;商品描述的质量直接影响转化率。根据行业研究&#xff0c;专业的多语言商品描述可以提升30%以上的购买意愿。然而&#xff0c…...

5分钟快速上手:foobar2000开源歌词插件的完整使用指南

5分钟快速上手&#xff1a;foobar2000开源歌词插件的完整使用指南 【免费下载链接】foo_openlyrics An open-source lyric display panel for foobar2000 项目地址: https://gitcode.com/gh_mirrors/fo/foo_openlyrics 还在为foobar2000寻找一款既美观又强大的歌词显示插…...

大数据赛项(中职组)-三个节点的创建及名字网络配置

因为比赛的时候需要三个节点&#xff0c;分别是主节点master、从节点slave1、slave2所以这里主要是基础准备这三个节点其实就是三台装有centOS系统的电脑&#xff08;服务器&#xff09;&#xff0c;后面将都用服务器前面我们已经学了在VMware中安装centos&#xff0c;并且做了…...

PocketSphinx语音识别技术深度解析:轻量级离线语音识别的5大核心特性

PocketSphinx语音识别技术深度解析&#xff1a;轻量级离线语音识别的5大核心特性 【免费下载链接】pocketsphinx A small speech recognizer 项目地址: https://gitcode.com/gh_mirrors/po/pocketsphinx PocketSphinx是卡内基梅隆大学开发的开源大词汇量、说话人无关的连…...

避坑指南:解决UR5+Robotiq夹爪在Gazebo中抖动散架的终极方案(附插件安装)

UR5Robotiq夹爪Gazebo仿真抖动问题深度解析与解决方案 1. 问题现象与根源分析 在ROS/Gazebo仿真环境中&#xff0c;UR5机械臂搭配Robotiq夹爪的组合常出现两类典型异常现象&#xff1a;一是夹爪关节持续高频抖动&#xff0c;二是仿真运行一段时间后夹爪组件完全散架。这类问题往…...

从Nexus私服配置到Maven本地缓存:彻底搞懂依赖更新间隔(update interval)那点事

从Nexus私服配置到Maven本地缓存&#xff1a;彻底搞懂依赖更新间隔&#xff08;update interval&#xff09;那点事 在DevOps的日常工作中&#xff0c;Maven依赖管理就像空气一样无处不在却又容易被忽视——直到某天构建突然失败&#xff0c;控制台抛出那句经典的"resolut…...

微生物组数据分析终极指南:如何用microeco包快速完成生态统计分析

微生物组数据分析终极指南&#xff1a;如何用microeco包快速完成生态统计分析 【免费下载链接】microeco An R package for downstream data analysis of microbiome omics data 项目地址: https://gitcode.com/gh_mirrors/mi/microeco microeco是一个功能强大的R语言包…...

用 5 秒视频讲述精彩开场:Pika 视频生成 API,短内容的突破点

在短内容的时代&#xff0c;第一印象决定了你是否还有机会讲述你的故事。Ace Data Cloud 的 Pika 视频 API 允许你将“励志句子/参考图像/参考视频”转换为 5-6 秒的高质量动态效果&#xff0c;非常适合短视频开场、产品亮点、表情包、动画广告和节目介绍等场景。 环境准备/前…...