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

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需要初始化,如下图所示:
 

dotween utilitypanel


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

dotween utilitypanel 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解决

使用的台式机&#xff0c;没有蓝牙驱动&#xff0c;在用logi无线鼠标时&#xff0c;把鼠标连接插入台式机后弹出的如上图所示这个提示&#xff0c;无论是点是/否&#xff0c;还是X掉上图提示&#xff0c;电脑右下角的图依然存在。不习惯这丫的存在。 我重启还是有&#xff0c;然…...

Kubernetes(K8s)从入门到精通系列之十四:安装工具

Kubernetes K8s从入门到精通系列之十四&#xff1a;安装工具 一、kubectl二、kind三、minikube四、kubeadm 一、kubectl Kubernetes 命令行工具 kubectl&#xff0c; 让你可以对 Kubernetes 集群运行命令。 你可以使用 kubectl 来部署应用、监测和管理集群资源以及查看日志。 …...

【Python】Python元组学习

Python之元组学习记录 一、元组的特点 可以容纳多个数据可以容纳不同类型的数据&#xff08;混装&#xff09;数据是有序存储的&#xff08;下标索引&#xff09;允许重复数据存在不可以修改&#xff08;增加或删除元素等&#xff09;但内部list元素可以被修改支持while&…...

HTML 元素的属性有哪些?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ class⭐ id⭐ style⭐ src⭐ href⭐ alt⭐ width和height⭐ disabled⭐ value⭐ required⭐ placeholder⭐ checked⭐ selected⭐ target⭐ colspan和rowspan⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得…...

Spring之事务实现方式及原理

目录 Spring事务简介 Spring支持事务管理的两种方式 编程式事务控制 声明式事务管理 Spring事务角色 未开启事务之前 开启Spring的事务管理后 事务配置 事务传播行为 事务传播行为的可选值 Spring事务简介 事务作用&#xff1a;在数据层保障一系列的数据库操作同成功…...

为独立服务器增加安全性的简单步骤

为独立服务器增加安全性的简单步骤 马上注册成为ROSABC会员&#xff0c;随时发帖回复。 您需要 登录 才可以下载或查看&#xff0c;没有账号&#xff1f;会员注册 x 独立服务器是您业务的中心&#xff0c;它需要尽可能的安全。对企业中心的攻击可能会导致您失去知识产权&…...

JavaScript--Cookie

什么是 Cookie&#xff1f; 在JavaScript中&#xff0c;cookie是一种小型的文本文件&#xff0c;它存储在用户的计算机上。通过使用cookie&#xff0c;网站可以向用户的浏览器发送数据&#xff0c;并将该数据保留在浏览器中&#xff0c;使网站能够在不同页面之间传递数据或存储…...

【单片机】晨启科技,酷黑版,简易电压采集装置

简易电压采集装置&#xff08;限MSP430、STM32单片机&#xff09; 任务要求&#xff1a; 设计制作一个简易电压采集与显示装置&#xff0c;实现如下基本功能&#xff1a; 评分细则&#xff1a; 1.通过单片机内部ADC模块采集1路电压并通过OLED屏显示电压大小&#xff1b;&#x…...

任务12、Quality指令加持,Midjourney生成电影级数码作品

12.1 任务概述 本次实验任务旨在帮助你掌握Midjourney AI绘画中的Quality指令。通过深入介绍Quality指令的概念和作用,我们将解释为什么它在绘画中至关重要。通过测试不同的Quality参数对绘画效果的影响,并提供实战演示,你将学会如何在Midjourney中设置Quality参数以达到更…...

第4章 字符串和格式化输入/输出

本章介绍以下内容&#xff1a; 函数&#xff1a;strlen() 关键字&#xff1a;const 字符串 如何创建、存储字符串 如何使用strlen()函数获取字符串的长度 用C预处理器指令#define和ANSIC的const修饰符创建符号常量 本章重点介绍输入和输出。与程序交互和使用字符串可以编写个性…...

嵌入式开发学习(STC51-7-矩阵按键)

内容 按下S1-S16键&#xff0c;对应数码管最左边显示0-F 矩阵按键简介 独立按键与单片机连接时&#xff0c;每一个按键都需要单片机的一个I/O 口&#xff0c;若某单片机系统需较多按键&#xff0c;如果用独立按键便会占用过多的I/O口资源&#xff1b;而单片机 系统中I/O口资…...

WMS仓储管理系统的价值从哪些方面体现

仓库管理在不断改善&#xff0c;采用信息化来管理仓库。自从使用了WMS仓储管理系统解决方案后&#xff0c;仓库管理的效率大大提高了&#xff0c;而且WMS系统有很多价值。 首先&#xff0c;WMS系统可以帮助员工更省时省力地完成仓库管理工作&#xff0c;提高效率和准确性。传统…...

网站推荐第二期-沉浸式网页翻译

通过在浏览器上安装插件形式实现&#xff0c;接入多方翻译接口&#xff0c;实现全平台翻译功能&#xff0c;甚至可以使用openai的chatgpt&#xff0c;效率倍增。 不仅可以双语阅读网页&#xff0c;甚至pdf也支持翻译。 推荐网址如下&#xff1a; 双语网页翻译 - 电子书翻译 …...

【独立后台】快递小程序便宜寄快递系统小程序 对接易达

快递代发项目简介&#xff1a; 顾名思义就是帮发快递。原本产业链是客户-快递之间的联系&#xff0c;现在变成了客户-我们-快递&#xff0c;简单来说就是我们把客户聚集到一起团购到了更优惠的价格。很简单就是赚一个差价&#xff0c; 单子多就能和各个快递合作的平台&#x…...

【JVM】垃圾回收 ——自问自答2

Q: System.gc() 的理解 System.gc()底层调用的是 Runtime.getRuntime.gc(),会现实出发FullGC。 但是&#xff0c;它的调用附带一个免责声明&#xff0c;无法保证对垃圾收集器的调用。 Q&#xff1a; 内存溢出和内存泄漏&#xff1f; 内存溢出&#xff1a; 简而言之&#xf…...

MySQL数据库数据类型

MySQL数据库数据类型分类 在MySQL数据库中&#xff0c;MySQL数据类型分有四大类&#xff1a;数值类型、文本/二进制类型、时间日期和String类型。以下是这四大类的具体类型&#xff1a; 数值类型 数值类型的范围和字节大小&#xff1a; tinyint类型 tinyint类型只有一个字节…...

【力扣】27. 移除元素 <快慢指针、首尾指针>

【力扣】27. 移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要原地移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。不要使用额外的数组空间&#xff0c;必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超…...

【每日一题】—— C. Challenging Cliffs(Codeforces Round 726 (Div. 2))

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…...

想在金融界拥有一席之地吗—社科院杜兰大学金融管理硕士助你圆梦

追求高学历是为了什么&#xff1f;一纸证书吗&#xff1f;显然并非如此&#xff0c;只有读过研的人才有话语权。在上升一个平台后&#xff0c;你必然会发现&#xff0c;更高学历得到的不止是一张文凭。而是更大的平台、更广阔的视野、更包容的环境&#xff0c;更多样的文化。最…...

Binary Ninja:开源二进制逆向工程的Python解决方案

Binary Ninja&#xff1a;开源二进制逆向工程的Python解决方案 【免费下载链接】deprecated-binaryninja-python Deprecated Binary Ninja prototype written in Python 项目地址: https://gitcode.com/gh_mirrors/de/deprecated-binaryninja-python 你是否曾面对一个陌…...

MusePublic艺术创作引擎保姆级教程:从安装到生成高清艺术图

MusePublic艺术创作引擎保姆级教程&#xff1a;从安装到生成高清艺术图 1. 准备工作与环境搭建 在开始使用MusePublic艺术创作引擎前&#xff0c;我们需要确保系统环境满足基本要求。这个轻量化的艺术创作工具对硬件配置相对友好&#xff0c;但仍有几个关键点需要注意。 1.1…...

5分钟成为Switch游戏安装专家:Awoo Installer终极指南

5分钟成为Switch游戏安装专家&#xff1a;Awoo Installer终极指南 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 还在为Switch游戏安装而烦恼吗&a…...

从选型到贴片:启英泰伦CI13XX芯片硬件设计避坑指南(附PCB布局建议)

启英泰伦CI13XX芯片硬件设计实战&#xff1a;从选型到量产的工程化解决方案 在智能语音硬件开发领域&#xff0c;启英泰伦CI13XX系列芯片凭借其高度集成的BNPU V3神经网络处理器和丰富的接口资源&#xff0c;已成为离线语音识别方案的热门选择。然而&#xff0c;从芯片选型到最…...

3分钟掌握WindowResizer:告别Windows窗口尺寸烦恼的终极解决方案

3分钟掌握WindowResizer&#xff1a;告别Windows窗口尺寸烦恼的终极解决方案 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些顽固的Windows窗口尺寸问题而烦恼吗&#x…...

KuiklyUI未来展望:2025路线图与技术演进趋势

KuiklyUI未来展望&#xff1a;2025路线图与技术演进趋势 【免费下载链接】KuiklyUI A Kotlin Multiplatform UI framework from Tencent TDS — high-performance, one codebase for six platforms, with dynamic delivery. 项目地址: https://gitcode.com/gh_mirrors/ku/Kui…...

Asian Beauty Z-Image Turbo隐私安全实践:纯本地生成如何保护商业图片数据

Asian Beauty Z-Image Turbo隐私安全实践&#xff1a;纯本地生成如何保护商业图片数据 1. 商业图片数据的安全挑战 在数字内容创作领域&#xff0c;商业图片数据的安全问题日益突出。想象一下&#xff0c;一家电商公司需要为新品生成模特展示图&#xff0c;或者一家广告公司要…...

TensorRT加速HY-Motion:NVIDIA推理性能提升方案

TensorRT加速HY-Motion&#xff1a;NVIDIA推理性能提升方案 1. 项目背景与价值 HY-Motion 1.0作为业界领先的文生3D动作生成模型&#xff0c;凭借其十亿级参数的Diffusion Transformer架构&#xff0c;在动作生成质量和指令遵循能力方面达到了新的高度。然而&#xff0c;如此…...

STEP3-VL-10B效果对比实测:10B参数碾压GLM-4.6V/Qwen3-VL-Thinking

STEP3-VL-10B效果对比实测&#xff1a;10B参数碾压GLM-4.6V/Qwen3-VL-Thinking 最近多模态大模型圈子里有个消息挺火的&#xff1a;阶跃星辰开源了一个只有10B参数的视觉语言模型STEP3-VL-10B&#xff0c;据说在好几个评测基准上把那些参数量大它10倍甚至20倍的模型都给比下去…...

MogFace人脸检测工具实测:16GB显存下支持最高4096×2160分辨率单图检测

MogFace人脸检测工具实测&#xff1a;16GB显存下支持最高40962160分辨率单图检测 1. 引言&#xff1a;当高清图片遇上精准人脸检测 你有没有遇到过这样的场景&#xff1f;拿到一张几千人合影的高清大图&#xff0c;想快速找出某个特定人物&#xff0c;或者需要从监控录像的4K…...