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.需求 给物体绑定一个脚本,这个脚本实现物体的透明度渐变变化,并且可以重置回原来的颜色。物体为Unity自带的材质Shader为Standard。 2.代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Transpare…...
django及DRF流程源码分析
Django执行流程: 1.nginx作为接入层,通过反向代理,监听80端口获取请求连接 2.将请求交给wsgi server 3.wsgi server调用django的wsgi.py 处理请求 4.WSGIHandler的__call__函数就是整个逻辑处理流程 5.WSGIHandler __init__中的加载中间件,对request对象…...
Ajax入门-Express框架介绍和基本使用
电脑实在忒垃圾了,出现问题耗费了至少一刻钟time,然后才搞出来正常的效果; 效果镇楼 另外重新安装了VScode软件,原来的老是报错,bug。。; 2个必要的安装命令; 然后建立必要的文件夹和文件&…...
Linux加强篇001-部署Linux系统
目录 一、前言 1.1准备工具 1.2安装配置VM虚拟机 1.3安装软件 1.4系统初始化进程 1.5重置root密码 二、巩固练习 1.为什么建议读者在下载系统文件后先进行校验而不是直接安装呢? 2.使用虚拟机安装Linux系统时,为什么要先…...
LeetCode算法题解(动态规划)|LeetCode343. 整数拆分、LeetCode96. 不同的二叉搜索树
一、LeetCode343. 整数拆分 题目链接:343. 整数拆分 题目描述: 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入…...
好多年没更新了
好多年没更新了,哈哈,各位好。 感恩一切,感恩有你们。...
DOM文档对象模型
前言 DOM(Document Object Model) 文档对象模型,是W3C制定的标准接口规范,是一种处理HTML和XML文件的标准API。简单来说DOM就是操作网页的api和接口。 一、Node类型属性 1.判断节点类型 nodeType 整数返回值 9 1 3 2 <div id"one">我…...
【Django-DRF】多年md笔记第5篇:Django-DRF的Request、Response和视图详解
本文从分析现在流行的前后端分离Web应用模式说起,然后介绍如何设计REST API,通过使用Django来实现一个REST API为例,明确后端开发REST API要做的最核心工作,然后介绍Django REST framework能帮助我们简化开发REST API的工作。 Dj…...
mongo DB -- aggregate分组查询后字段展示
一、分组查询 在mongoDB中可以使用aggregate中的$group操作对集合中的文档进行分组,但是查询后的数据不显示其他字段,只显示分组字段 aggregate进行分组示例 db.collection.aggregate([{$group: {_id: "$field"}},]) 查询后显示 展开只显示两个字段 二、显示所有字段…...
禁止linux shell 终端显示完整工作路径,如何让linux bash终端不显示当前工作路径
在操作linux时,默认安装的linux终端会显示当前完整的工作目录,如果目录比较短还是可以接收,如果目录比较长,就显得比较别扭,操作起来不方便,因此需要关闭这种功能。 要关闭这个功能,请按如下步骤…...
error: ‘ui/ui_uimainwindow.h‘ file not found
问题:在刚好创建的Qt Designer Form Class类中,发现类的.cpp文件中有ui头文件未找到 原因:.ui文件没有被识别到,或者.ui文件不存在,导致ui头文件未创建而报错。 解决:若修改了.ui文件,随手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 :类, 通过new关键字来实例化,每次实例化都会创建一个新的对象;用来定义普通的类。object:对象,用来定义一个单例对象的,它只有一个实例,且在程序运行期间…...
1.Gin 介绍
1.Gin 介绍 介绍 Gin 是一个 Go (Golang) 编写的轻量级 http web 框架,运行速度非常快,如果你是性能和高效的追求者,我们推荐你使用 Gin 框架。 Gin 最擅长的就是 Api 接口的高并发,如果项目的规模不大,业务相对简单&a…...
华三无线控制器WX2540H配合准入做Portal认证
数据通信 - 建设篇 - 无线 第四章 华三无线控制器WX2540H配合准入做Portal认证 数据通信 - 建设篇 - 无线系列文章回顾华三无线控制器WX2540H配合准入做Portal认证前言其他配置优化参考来源系列文章回顾 第一章 华三无线控制器配置本地转发 第二章 华三无线控制器配置802.1X认…...
OAK相机通过振动测试!
编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 Hello,大家好,这里是OAK中国,我是助手君。 当…...
使用Pytorch从零开始构建RNN
在这篇文章中,我们将了解 RNN(即循环神经网络),并尝试通过 PyTorch 从头开始实现其中的部分内容。是的,这并不完全是从头开始,因为我们仍然依赖 PyTorch autograd 来计算梯度并实现反向传播,…...
Linux之实现简易的shell
1.打印提示符并获取命令行 我们在使用shell的时候,发现我们在输入命令是,前面会有:有用户名,版本,当前路径等信息,这里我们可以用环境变量去获取: 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 保留一个固定的…...
5分钟快速上手:ONNX+AWS Lambda打造超轻量AI推理服务终极指南
5分钟快速上手:ONNXAWS Lambda打造超轻量AI推理服务终极指南 【免费下载链接】onnx Open standard for machine learning interoperability 项目地址: https://gitcode.com/gh_mirrors/onn/onnx ONNX作为机器学习互操作性的开放标准,让AI模型能够…...
Windows下用清华源5分钟搞定ONNX全家桶(含CUDA版本匹配避坑指南)
Windows下5分钟极速部署ONNX全家桶:清华源加速与CUDA版本精准匹配实战 刚接手一个新项目需要部署YOLOv5模型时,我遇到了典型的ONNX环境配置噩梦:ImportError: Could not load library cudnn_ops_infer64_8.dll。这个报错背后是无数开发者共同…...
别再傻傻分不清了!一文搞懂蓝牙BR/EDR、BLE和LE2M到底有啥区别(附应用场景选择指南)
蓝牙技术选型指南:BR/EDR、BLE与LE2M的核心差异与实战选择 当你准备开发一款智能手环时,技术文档里突然冒出BR/EDR、BLE、LE2M这些术语——它们看起来都带着"蓝牙"前缀,但功耗参数相差十倍,传输距离可能差出百米。三年前…...
太原盾构机运输
随着我国城市轨道交通建设的高速推进,盾构机作为隧道施工的核心装备,其运输需求日益增长。如何安全、高效地将重达数百吨的巨型设备从生产基地运往施工一线,已成为大件运输领域的重要课题。本文将深入探讨以【太原重卡叔叔运输有限公司】为代…...
PoeCharm:中文BD计算器与流放之路角色构建优化方案
PoeCharm:中文BD计算器与流放之路角色构建优化方案 【免费下载链接】PoeCharm Path of Building Chinese version 项目地址: https://gitcode.com/gh_mirrors/po/PoeCharm PoeCharm作为Path of Building的中文本地化版本,为流放之路玩家提供了专业…...
IDM试用重置工具:告别30天限制的智能解决方案
IDM试用重置工具:告别30天限制的智能解决方案 【免费下载链接】idm-trial-reset Use IDM forever without cracking 项目地址: https://gitcode.com/gh_mirrors/id/idm-trial-reset 你是否曾经遇到过这样的情况:正在下载重要文件时,ID…...
智能配置黑苹果:OpCore Simplify如何让OpenCore EFI创建变得简单高效
智能配置黑苹果:OpCore Simplify如何让OpenCore EFI创建变得简单高效 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配…...
AI 写论文哪个软件最好?实测对比后,虎贲等考 AI 凭毕业论文全流程实力出圈
每到毕业季,无数本科生、硕士研究生都会陷入同一个难题:毕业论文无从下笔,选题没方向、大纲不会搭、文献找不到、写完查重居高不下,格式排版更是让人崩溃。这时大家都会纠结同一个问题:AI 写论文哪个软件最好ÿ…...
LLM 上下文管理:技巧与优化
LLM 上下文管理:技巧与优化 核心原理 上下文管理的基本概念 LLM(大型语言模型)的上下文管理是指在与模型交互过程中,有效管理输入上下文的长度、质量和结构,以获得最佳的模型输出。其核心作用包括: 信息…...
PhoenixGo实战应用:10个高级围棋AI分析技巧,助你快速提升棋力
PhoenixGo实战应用:10个高级围棋AI分析技巧,助你快速提升棋力 【免费下载链接】PhoenixGo Go AI program which implements the AlphaGo Zero paper 项目地址: https://gitcode.com/gh_mirrors/ph/PhoenixGo PhoenixGo是一款基于AlphaGo Zero论文…...
