Unity数字可视化学校_昼夜(三)
1、删除不需要的



UI


 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class EnvControl : MonoBehaviour
{//UIprivate Button btnTime;private Text txtTime; //材质public List<Material> matList=new List<Material>();private List<float>  matValueList=new List<float>();// Start is called before the first frame updatevoid Awake(){btnTime = transform.Find("Canvas/Panel/btnTime").GetComponent<Button>();txtTime = transform.Find("Canvas/Panel/btnTime/Text").GetComponent<Text>();txtTime.text = "白天";btnTime.onClick.AddListener(onBtnTimeClick);}// Update is called once per framevoid Update(){}void onBtnTimeClick(){txtTime.text = txtTime.text == "白天" ? "晚上" : "白天";}
}
 
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
using UnityEngine.UI;public class EnvControl : MonoBehaviour
{//UIprivate Button btnTime;private Text txtTime; //材质public List<Material> matList=new List<Material>();private List<float>  matValueList=new List<float>();//Postprivate PostProcessVolume postDay;private PostProcessVolume PostNight;//特效、光照private GameObject nightFx;private GameObject nightLight;// Start is called before the first frame updatevoid Awake(){btnTime = transform.Find("Canvas/Panel/btnTime").GetComponent<Button>();txtTime = transform.Find("Canvas/Panel/btnTime/Text").GetComponent<Text>();for (int i = 0; i < matList.Count; i++){matValueList.Add(matList[i].GetFloat("_E"));}postDay = transform.Find("Light/PostDay").GetComponent<PostProcessVolume>();PostNight = transform.Find("Light/PostNight").GetComponent<PostProcessVolume>();nightFx = transform.Find("Light/FX").gameObject;nightLight = transform.Find("Light/Night").gameObject;//初始化txtTime.text = "夜晚";btnTime.onClick.AddListener(onBtnTimeClick);}// Update is called once per framevoid Update(){}void onBtnTimeClick(){txtTime.text = txtTime.text == "白天" ? "夜晚" : "白天";//白天if (txtTime.text== "白天"){nightFx.SetActive(false);nightLight.SetActive(false);for (int i = 0; i < matList.Count; i++){matList[i].SetFloat("_E", 0f);}postDay.weight = 1.0f;PostNight.weight = 0f;UniStorm.UniStormManager.Instance.SetTime(10, 0);}//夜晚if (txtTime.text == "夜晚"){nightFx.SetActive(true);nightLight.SetActive(true);for (int i = 0; i < matList.Count; i++){//matList[i].SetFloat("_E", 1.0f);matList[i].SetFloat("_E", matValueList[i]);}postDay.weight = 0.0f;PostNight.weight = 11.0f;UniStorm.UniStormManager.Instance.SetTime(22, 0);}}private void onDestroy(){for (int i = 0; i < matList.Count; i++){matList[i].SetFloat("_E", matValueList[i]);}}
}
 
注意:
![]()
 
2、DOTween
DOTween (HOTween v2) | Animation Tools | Unity Asset Store
导入
下载完成后直接导入Unity,如果是新项目第一次导入Unity,会弹出提示框提示DoTween需要初始化,如下图所示:
  

 点击Setup DOTween按钮即可完成配置,当然如果需要自定义一些参数,可以点击Preferences选项卡来进行设置,该选项卡如下图所示:

初始化完成后,在需要使用DoTween的地方需要引入命名空间DG.Tweening; 这里是一些官方的链接:
 快速开始: http://dotween.demigiant.com/getstarted.php
 官方文档: http://dotween.demigiant.com/documentation.php
3、属性变化
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
using UnityEngine.UI;
using DG.Tweening;public class EnvControl : MonoBehaviour
{//UIprivate Button btnTime;private Text txtTime; //材质public List<Material> matList=new List<Material>();private List<float>  matValueList=new List<float>();//Postprivate PostProcessVolume postDay;private PostProcessVolume PostNight;//特效、光照private GameObject nightFx;private GameObject nightLight;// Start is called before the first frame updatevoid Awake(){btnTime = transform.Find("Canvas/Panel/btnTime").GetComponent<Button>();txtTime = transform.Find("Canvas/Panel/btnTime/Text").GetComponent<Text>();for (int i = 0; i < matList.Count; i++){matValueList.Add(matList[i].GetFloat("_E"));}postDay = transform.Find("Light/PostDay").GetComponent<PostProcessVolume>();PostNight = transform.Find("Light/PostNight").GetComponent<PostProcessVolume>();nightFx = transform.Find("Light/FX").gameObject;nightLight = transform.Find("Light/Night").gameObject;//初始化txtTime.text = "夜晚";btnTime.onClick.AddListener(onBtnTimeClick);}// Update is called once per framevoid Update(){}void onBtnTimeClick(){txtTime.text = txtTime.text == "白天" ? "夜晚" : "白天";//白天if (txtTime.text== "白天"){nightFx.SetActive(false);nightLight.SetActive(false);for (int i = 0; i < matList.Count; i++){//matList[i].SetFloat("_E", 0f);DoPropertyAnim(matList[i],"_E",0f,1f);}float weightDay = 0f;float weightNeight = 1f;DOTween.To(() => weightDay, (x) => { weightDay = x; postDay.weight = x; }, 1f, 1f);DOTween.To(() => weightNeight, (x) => { weightNeight = x; PostNight.weight = x; }, 0f, 1f);//postDay.weight = 1.0f;//PostNight.weight = 0f;UniStorm.UniStormManager.Instance.SetTime(10, 0);}//夜晚if (txtTime.text == "夜晚"){nightFx.SetActive(true);nightLight.SetActive(true);for (int i = 0; i < matList.Count; i++){//matList[i].SetFloat("_E", 1.0f);//matList[i].SetFloat("_E", matValueList[i]);DoPropertyAnim(matList[i], "_E", matValueList[i], 1f);}float weightDay = 1.0f;float weightNeight = 0f;DOTween.To(() => weightDay, (x) => { weightDay = x; postDay.weight = x; }, 0f, 1f);DOTween.To(() => weightNeight, (x) => { weightNeight = x; PostNight.weight = x; }, 1f, 1f);//postDay.weight = 0.0f;//PostNight.weight = 1.0f;UniStorm.UniStormManager.Instance.SetTime(22, 0);}}private void onDestroy(){for (int i = 0; i < matList.Count; i++){matList[i].SetFloat("_E", matValueList[i]);}}//属性动画void DoPropertyAnim(Material mat, string property, float value, float duration){float data = mat.GetFloat(property);DOTween.To(()=>data, (x) => { data=x;mat.SetFloat(property,x);},value,duration);}
}
 
相关文章:
Unity数字可视化学校_昼夜(三)
1、删除不需要的 UI using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class EnvControl : MonoBehaviour {//UIprivate Button btnTime;private Text txtTime; //材质public List<Material> matListnew Li…...
使用罗技鼠标后 弹出当前页面的脚本发生错误AppData/Local/Temp/LogiUI/Pak/js/jquery-1.3.2.min.js解决
使用的台式机,没有蓝牙驱动,在用logi无线鼠标时,把鼠标连接插入台式机后弹出的如上图所示这个提示,无论是点是/否,还是X掉上图提示,电脑右下角的图依然存在。不习惯这丫的存在。 我重启还是有,然…...
Kubernetes(K8s)从入门到精通系列之十四:安装工具
Kubernetes K8s从入门到精通系列之十四:安装工具 一、kubectl二、kind三、minikube四、kubeadm 一、kubectl Kubernetes 命令行工具 kubectl, 让你可以对 Kubernetes 集群运行命令。 你可以使用 kubectl 来部署应用、监测和管理集群资源以及查看日志。 …...
【Python】Python元组学习
Python之元组学习记录 一、元组的特点 可以容纳多个数据可以容纳不同类型的数据(混装)数据是有序存储的(下标索引)允许重复数据存在不可以修改(增加或删除元素等)但内部list元素可以被修改支持while&…...
HTML 元素的属性有哪些?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ class⭐ id⭐ style⭐ src⭐ href⭐ alt⭐ width和height⭐ disabled⭐ value⭐ required⭐ placeholder⭐ checked⭐ selected⭐ target⭐ colspan和rowspan⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得…...
Spring之事务实现方式及原理
目录 Spring事务简介 Spring支持事务管理的两种方式 编程式事务控制 声明式事务管理 Spring事务角色 未开启事务之前 开启Spring的事务管理后 事务配置 事务传播行为 事务传播行为的可选值 Spring事务简介 事务作用:在数据层保障一系列的数据库操作同成功…...
为独立服务器增加安全性的简单步骤
为独立服务器增加安全性的简单步骤 马上注册成为ROSABC会员,随时发帖回复。 您需要 登录 才可以下载或查看,没有账号?会员注册 x 独立服务器是您业务的中心,它需要尽可能的安全。对企业中心的攻击可能会导致您失去知识产权&…...
JavaScript--Cookie
什么是 Cookie? 在JavaScript中,cookie是一种小型的文本文件,它存储在用户的计算机上。通过使用cookie,网站可以向用户的浏览器发送数据,并将该数据保留在浏览器中,使网站能够在不同页面之间传递数据或存储…...
【单片机】晨启科技,酷黑版,简易电压采集装置
简易电压采集装置(限MSP430、STM32单片机) 任务要求: 设计制作一个简易电压采集与显示装置,实现如下基本功能: 评分细则: 1.通过单片机内部ADC模块采集1路电压并通过OLED屏显示电压大小;&#x…...
任务12、Quality指令加持,Midjourney生成电影级数码作品
12.1 任务概述 本次实验任务旨在帮助你掌握Midjourney AI绘画中的Quality指令。通过深入介绍Quality指令的概念和作用,我们将解释为什么它在绘画中至关重要。通过测试不同的Quality参数对绘画效果的影响,并提供实战演示,你将学会如何在Midjourney中设置Quality参数以达到更…...
第4章 字符串和格式化输入/输出
本章介绍以下内容: 函数:strlen() 关键字:const 字符串 如何创建、存储字符串 如何使用strlen()函数获取字符串的长度 用C预处理器指令#define和ANSIC的const修饰符创建符号常量 本章重点介绍输入和输出。与程序交互和使用字符串可以编写个性…...
嵌入式开发学习(STC51-7-矩阵按键)
内容 按下S1-S16键,对应数码管最左边显示0-F 矩阵按键简介 独立按键与单片机连接时,每一个按键都需要单片机的一个I/O 口,若某单片机系统需较多按键,如果用独立按键便会占用过多的I/O口资源;而单片机 系统中I/O口资…...
WMS仓储管理系统的价值从哪些方面体现
仓库管理在不断改善,采用信息化来管理仓库。自从使用了WMS仓储管理系统解决方案后,仓库管理的效率大大提高了,而且WMS系统有很多价值。 首先,WMS系统可以帮助员工更省时省力地完成仓库管理工作,提高效率和准确性。传统…...
网站推荐第二期-沉浸式网页翻译
通过在浏览器上安装插件形式实现,接入多方翻译接口,实现全平台翻译功能,甚至可以使用openai的chatgpt,效率倍增。 不仅可以双语阅读网页,甚至pdf也支持翻译。 推荐网址如下: 双语网页翻译 - 电子书翻译 …...
【独立后台】快递小程序便宜寄快递系统小程序 对接易达
快递代发项目简介: 顾名思义就是帮发快递。原本产业链是客户-快递之间的联系,现在变成了客户-我们-快递,简单来说就是我们把客户聚集到一起团购到了更优惠的价格。很简单就是赚一个差价, 单子多就能和各个快递合作的平台&#x…...
【JVM】垃圾回收 ——自问自答2
Q: System.gc() 的理解 System.gc()底层调用的是 Runtime.getRuntime.gc(),会现实出发FullGC。 但是,它的调用附带一个免责声明,无法保证对垃圾收集器的调用。 Q: 内存溢出和内存泄漏? 内存溢出: 简而言之…...
MySQL数据库数据类型
MySQL数据库数据类型分类 在MySQL数据库中,MySQL数据类型分有四大类:数值类型、文本/二进制类型、时间日期和String类型。以下是这四大类的具体类型: 数值类型 数值类型的范围和字节大小: tinyint类型 tinyint类型只有一个字节…...
【力扣】27. 移除元素 <快慢指针、首尾指针>
【力扣】27. 移除元素 给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超…...
【每日一题】—— C. Challenging Cliffs(Codeforces Round 726 (Div. 2))
🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日一题 💌其他专栏: 🔴 每日反刍 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓称…...
想在金融界拥有一席之地吗—社科院杜兰大学金融管理硕士助你圆梦
追求高学历是为了什么?一纸证书吗?显然并非如此,只有读过研的人才有话语权。在上升一个平台后,你必然会发现,更高学历得到的不止是一张文凭。而是更大的平台、更广阔的视野、更包容的环境,更多样的文化。最…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
