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

Unity 使用UGUI制作卷轴开启关闭效果

视频效果

请添加图片描述

代码

using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
using DG.Tweening.Core;
using DG.Tweening.Plugins.Options;public class JuanZhou : MonoBehaviour
{[SerializeField]private RawImage rawImage;[SerializeField]/// <summary>/// Padding to be applied to the masking/// X = Left/// Y = Bottom/// Z = Right/// W = Top/// </summary>private RectMask2D rectMask2D;[SerializeField]private RectTransform Left;[SerializeField]private RectTransform Right;[SerializeField]private Vector4 rectMaskTarget;[SerializeField]private float LeftX;[SerializeField]private float RightX;[SerializeField]private float duration = 2;[SerializeField]private float LeftOriX;[SerializeField]private float RightOriX;private void Update(){if (Input.GetKeyUp(KeyCode.P)){Play();}else if (Input.GetKeyUp(KeyCode.O)){Close(true);}}/// <summary>/// 设置图片/// </summary>public void SetRawImage(Texture texture){rawImage.texture = texture;}[ContextMenu("开启")]public void Play(){Play(true);}public void Play(bool Invoke = true){float tmp = Invoke ? duration : 0;Left.DOAnchorPosX(LeftX, tmp).SetEase(Ease.Linear);Right.DOAnchorPosX(RightX, tmp).SetEase(Ease.Linear);rectMask2D.DoPadding(Vector4.zero, tmp).SetEase(Ease.Linear);}[ContextMenu("关闭")]public void Close(){Close(false);}public void Close(bool Invoke = true){float tmp = Invoke ? duration : 0;Left.DOAnchorPosX(LeftOriX, tmp).SetEase(Ease.Linear);Right.DOAnchorPosX(RightOriX, tmp).SetEase(Ease.Linear);rectMask2D.DoPadding(rectMaskTarget, tmp).SetEase(Ease.Linear);}[ContextMenu("暂停")]public void Pause(){Left.DOPause();Right.DOPause();rectMask2D.DOPause();}}public static class RectMask2DExtensions
{public static TweenerCore<Vector4, Vector4, VectorOptions> DoPadding(this RectMask2D target, Vector4 endValue, float duration, bool snapping = false){TweenerCore<Vector4, Vector4, VectorOptions> t = DOTween.To(() => target.padding, x => target.padding = x, endValue, duration);t.SetOptions(snapping).SetTarget(target);return t;}
}

##请添加图片描述
卷轴预制体结构

相关文章:

Unity 使用UGUI制作卷轴开启关闭效果

视频效果 代码 using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options;public class JuanZhou : MonoBehaviour {[SerializeField]private …...

MarkDown怎么转pdf;Mark Text怎么使用;

MarkDown怎么转pdf 目录 MarkDown怎么转pdf先用CSDN进行编辑,能双向看版式;标题最后直接导出pdfMark Text怎么使用一、界面介绍二、基本操作三、视图模式四、其他功能先用CSDN进行编辑,能双向看版式; 标题最后直接导出pdf Mark Text怎么使用 Mark Text是一款简洁的开源Mar…...

整合版canal ha搭建--基于1.1.4版本

开启MySql Binlog&#xff08;1&#xff09;修改MySql配置文件&#xff08;2&#xff09;重启MySql服务,查看配置是否生效&#xff08;3&#xff09;配置起效果后&#xff0c;创建canal用户&#xff0c;并赋予权限安装canal-admin&#xff08;1&#xff09;解压 canal.admin-1…...

QGIS移动图元功能

有时需要在QGIS里面移动一些矢量图层&#xff0c;比如图层的地理配准&#xff0c;网上搜了一些资料没有查看&#xff0c;后来仔细找了下&#xff0c;在编辑-编辑几何图形-移动要素里面&#xff0c;可以移动图层。 注意&#xff1a;移动前先要选择上要移动的图层&#xff0c;之…...

【模电刷题复习--填空】

如有错误&#xff0c;欢迎各位大佬在评论区批评指正 模电刷题 一、填空题1.本征半导体中&#xff0c;若掺入微量的__五__价元素&#xff0c;则形成___n___型半导体&#xff0c;其多数载流子是自由电子&#xff0c;若掺入微量的__三__价元素&#xff0c;则形成__p__型半导体。其…...

shardingsphere-jdbc-core-spring-boot-starter的性能问题(理论)

hardingSphere-JDBC-core-spring-boot-starter 是 ShardingSphere 提供的与 Spring Boot 集成的模块&#xff0c;用于实现数据库的分库分表等功能。在性能方面&#xff0c;它既有优势也存在一定的挑战&#xff0c;以下是具体分析&#xff1a; 优势方面 数据分片提升查询性能 通…...

Java Map 集合详解:基础用法、常见实现类与高频面试题解析

在 Java 集合框架中&#xff0c;Map 是用于存储键值对&#xff08;Key-Value&#xff09;的重要接口&#xff0c;广泛应用于开发中的各种场景。本文将详细讲解 Map 的基础概念、常见实现类及其特性&#xff0c;并结合代码示例和高频面试问题&#xff0c;帮助你深入理解 Map 的用…...

一款基于.Net方便、快捷的数据库文档查询、生成工具

项目介绍 SmartSQL 是一款方便、快捷的数据库文档查询、导出工具&#xff01;从最初仅支持SqlServer数据库、CHM文档格式开始&#xff0c;通过不断地探索开发、集思广益和不断改进&#xff0c;又陆续支持Word、Excel、PDF、Html、Xml、Json、MarkDown等文档格式的导出。同时又…...

Linux平台下实现的小程序-进度条

目录 1.换行、回车概念 2.缓冲区 2.1缓冲区 2.2强制刷新 3.进度条程序 Makefile文件 ProgressBar.h ProgressBar.c Main.c 执行结果 1.换行、回车概念 /n&#xff1a;换行回车&#xff08;\r&#xff1a;回车&#xff09; 2.缓冲区 如下图在vim编辑器中的命令模式下…...

Ubuntu 22.04.5 修改IP

Ubuntu22.04.5使用的是netplan管理网络&#xff0c;因此需要在文件夹/etc/netplan下的01-network-manager-all.yaml中修改&#xff0c;需要权限&#xff0c;使用sudo vim或者其他编辑器&#xff0c;修改后的内容如下&#xff1a; # Let NetworkManager manage all devices on …...

解决virtualbox出现开启DHCP之后ubuntu虚拟机之后IP重复的问题

找遍了国内论坛&#xff0c;没一个能解决该问题的&#xff0c;所以我自己写个文章吧&#xff0c;真讨厌那些只会搬运的&#xff0c;污染国内论坛环境&#xff0c;搜一个问题&#xff0c;千篇一律。 问题 操作系统版本为"Ubuntu 24.04 LTS" lennytest1:~$ cat /etc…...

Java开发工具-Jar命令

Java开发工具-Jar 1、jar命令全平台使用 2、jar命令的作用 为类和资源创建存档&#xff0c;并从存档中操作或恢复单个类或资源 3、摘要 jar [OPTION …] [ [–release VERSION] [-C dir] files] … 4、jar命令描述 jar命令通常作为用于压缩与解压的工具&#xff0c;基于ZIP或Z…...

UE5通过蓝图节点控制材质参数

通过蓝图节点控制材质的参数 蓝图节点 在材质上设置标量值 和 在材质上设置向量参数值 Set Scalar Parameter Value on Materials Set Vector Parameter Value on Materials 这两个蓝图节点都可以在蓝图中&#xff0c;控制材质的参数值和向量值...

敖行客年终总结-AT Work 1.0发布

2024年就要过去了&#xff0c;看看敖行客这一年都干了些啥&#xff1f; 敖行客团队通过整整一年的努力&#xff0c;正式推出了AT Work 1.0订阅版&#xff0c;这也标志着AT Work即将正式和C端的小伙伴见面了。 AT Work 是什么&#xff1f; 长期以来&#xff0c;软件研发成本、…...

线程锁和协程锁的区别

转自&#xff1a;chatgpt 1.bthread_mutex_t bthread_mutex_t 是 brpc 框架提供的一种互斥锁&#xff0c;专门为 bthread&#xff08;轻量级线程&#xff09; 设计&#xff0c;具有以下特点&#xff1a; 适用于 bthread 调度模型&#xff1a; bthread_mutex_t 是为 brpc 中的…...

手机租赁平台开发助力智能设备租赁新模式

内容概要 手机租赁平台开发&#xff0c;简单说就是让你用得起高大上的智能设备&#xff0c;不管是最新款的手机、平板&#xff0c;还是那些炫酷的智能耳机&#xff0c;这个平台应有尽有。想要体验但又不希望花大钱&#xff1f;那你就找对地方了&#xff01;通过灵活的租赁方案…...

掌握大数据处理利器:Flink 知识点全面总结【上】

1.Flink的特点 Apache Flink 是一个框架和分布式处理引擎&#xff0c;用于对无界和有界数据流进行状态计算。 Flink主要特点如下&#xff1a; 高吞吐和低延迟。每秒处理数百万个事件&#xff0c;毫秒级延迟。结果的准确性。Flink提供了事件时间(event--time)和处理时间(proces…...

人工智能知识分享第四天-线性回归

线性回归 线性回归介绍 线性回归概念 线性回归(Linear regression)是利用 回归方程(函数) 对 一个或多个自变量(特征值)和因变量(目标值)之间 关系进行建模的一种分析方式。 注意事项&#xff1a; 1 为什么叫线性模型&#xff1f;因为求解的w&#xff0c;都是w的零次幂&am…...

Appium 2.0:移动自动化测试的革新之旅

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理&#xff0c;构建成功的基石 在自动化测试工作之前&#xff0c;你应该知道的10条建议 在自动化测试中&#xff0c;重要的不是工具 在移动应用开发的领域中&#xff0c;Appium 作为一款强大的自动化测试工具&#xf…...

牛客网最新1129道 Java 面试题及答案整理

前言 面试&#xff0c;跳槽&#xff0c;每天都在发生&#xff0c;而对程序员来说"金三银四"更是面试和跳槽的高峰期&#xff0c;跳槽&#xff0c;更是很常见的&#xff0c;对于每个人来说&#xff0c;跳槽的意义也各不相同&#xff0c;可能是一个人更向往一个更大的…...

Swift Combine 学习(六):自定义 Publisher 和 Subscriber

Swift Combine 学习&#xff08;一&#xff09;&#xff1a;Combine 初印象Swift Combine 学习&#xff08;二&#xff09;&#xff1a;发布者 PublisherSwift Combine 学习&#xff08;三&#xff09;&#xff1a;Subscription和 SubscriberSwift Combine 学习&#xff08;四&…...

Vue-router知识点汇总

import Vue from vue import Router from vue-router Vue.use(Router) import Layout from /layout export const constantRoutes [{path: /forgetpsd,name: forgetPsd,// 命名路由 &#xff0c;跳转<router-link :to"{ name: forgetPsdr, params: { userId: 123 }}&q…...

java AQS

什么是AQS AQS&#xff08;AbstractQueuedSynchronizer&#xff0c;抽象队列同步器&#xff09;是 Java 中并发控制的一种机制&#xff0c;位于 java.util.concurrent.locks 包下&#xff0c;它为构建锁、信号量等同步工具提供了一个框架。AQS 通过 队列 来管理多个线程之间的…...

L25.【LeetCode笔记】 三步问题的四种解法(含矩阵精彩解法!)

目录 1.题目 2.三种常规解法 方法1:递归做 ​编辑 方法2:改用循环做 初写的代码 提交结果 分析 修改后的代码 提交结果 for循环的其他写法 提交结果 方法3:循环数组 提交结果 3.方法4:矩阵 算法 代码实践 1.先计算矩阵n次方 2.后将矩阵n次方嵌入递推式中 提…...

sdut-C语言实验-合数分解

sdut-C语言实验-合数分解 分数 12 全屏浏览 切换布局 作者 马新娟 单位 山东理工大学 合数是指在大于1的整数中&#xff0c;除了1和本身外&#xff0c;还能被其他数整除的数。‌例如&#xff0c;4、6、8、9、10等都是合数。把一个合数分解成若干个质因数乘积的形式(即求质因…...

深入理解 pytest Fixture 方法及其应用

在 Python 自动化测试领域&#xff0c;pytest 是当之无愧的王者。提到 pytest&#xff0c;不得不说它的一大核心功能——Fixture。Fixture 的强大&#xff0c;让复杂的测试流程变得井井有条&#xff0c;让测试代码更加灵活和可复用。 那么&#xff0c;pytest 的 Fixture 究竟是…...

在Linux上获取MS(如Media Server)中的RTP流并录制为双轨PCM格式的WAV文件

在Linux上获取MS(如Media Server)中的RTP流并录制为双轨PCM格式的WAV文件 一、RTP流与WAV文件格式二、实现步骤三、伪代码示例四、C语言示例代码五、关键点说明六、总结在Linux操作系统上,从媒体服务器(如Media Server,简称MS)获取RTP(Real-time Transport Protocol)流…...

Midjourney技术浅析(八):交互与反馈

Midjourney 的用户交互与反馈通过用户输入&#xff08;User Input&#xff09;和用户反馈&#xff08;User Feedback&#xff09;机制&#xff0c;不断优化和改进图像生成的质量和用户满意度。 一、用户交互与反馈模块概述 用户交互与反馈模块的主要功能包括&#xff1a; 1.…...

【Spring MVC 核心机制】核心组件和工作流程解析

在 Web 应用开发中&#xff0c;处理用户请求的逻辑常常会涉及到路径匹配、请求分发、视图渲染等多个环节。Spring MVC 作为一款强大的 Web 框架&#xff0c;将这些复杂的操作高度抽象化&#xff0c;通过组件协作简化了开发者的工作。 无论是处理表单请求、生成动态页面&#x…...

回归问题的等量分层

目录 一、说明 二、什么是分层抽样&#xff1f; 三、那么回归又如何呢&#xff1f; 四、回归分层&#xff08;Stratification on Regression&#xff09; 一、说明 在同一个数据集中&#xff0c;我们可以看成是一个抽样体。然而&#xff0c;我们如果将这个抽样体分成两份&#…...