Unity:背景图像的旋转和按钮的缩放动画

embedded/2025/3/3 4:16:29/

    实现控制两个背景图像的旋转,并且可以通过点击按钮来放大或缩小父级对象,步骤如下:

1、旋转背景图像

    有两个背景图像 wai 和 nei,分别代表外背景和内背景。

    这两个背景图像会以相反的方向旋转,wai 向前旋转,nei 向后旋转。

    旋转速度可以通过 speed 变量进行设置。

2、按钮点击事件

    按钮 btnshow,点击该按钮会触发 btnshowClick 方法。

    当按钮被点击时,父级对象 m_transform 会进行缩放动画: 

        如果当前对象是放大状态,点击后会缩小到 0.5 倍。

        如果当前对象是缩小状态,点击后会放大到 1 倍。

3、每帧旋转

    ZhuanOne 方法在每一帧都会被调用,用于实现背景图像的持续旋转。

using DG.Tweening; // 使用 DOTween 插件来实现动画效果
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
/// 内外两个背景 反向旋转 可以设置旋转速度
/// </summary>
public class RotateTest : MonoBehaviour
{[Header("父级")]public Transform m_transform; // 父级对象,用于缩放动画[Header("背景")]public Image wai; // 外背景图像public Image nei; // 内背景图像[Header("点击UI")]public Button btnshow; // 用于触发缩放动画的按钮bool host1Click = false;  // 用于记录按钮是否被点击过[Header("旋转速度")]public float speed; // 背景图像的旋转速度// Start is called before the first frame updatevoid Start(){btnshow.onClick.AddListener(btnshowClick); // 绑定按钮点击事件}// 按钮点击事件处理public void btnshowClick(){// 当图像被放大时,点击会缩小if (host1Click){host1Click = false;m_transform.DOScale(new Vector3(0.5f, 0.5f, 0.5f), 0.5f); // 缩小到 0.5 倍}// 当图像默认大小时,点击会放大else{host1Click = true;m_transform.DOScale(new Vector3(1f, 1f, 1f), 0.5f); // 放大到 1 倍}}// Update is called once per framevoid Update(){ZhuanOne(); // 每帧调用旋转方法}// 每帧都在执行的旋转事件public void ZhuanOne(){try{wai.transform.Rotate(Vector3.forward, speed);   // 外背景向前旋转}catch{// 捕获异常,防止旋转过程中出现错误}try{nei.transform.Rotate(Vector3.back, speed);   // 内背景向后旋转}catch{// 捕获异常,防止旋转过程中出现错误}}
}

    适用于需要背景旋转和简单 UI 交互的场景


http://www.ppmy.cn/embedded/169513.html

相关文章

AIGC(生成式AI)试用 25 -- 跟着清华教程学习 - DeepSeek+DeepResearch让科研像聊天一样简单

目标&#xff1a;继续学习&#xff0c;以DeepSeek为主 个人理解&#xff1a; - 模型结合&#xff0c;充分发挥各模型的优势 - 关注应用&#xff0c;弱化理论&#xff0c;了解就好 - 多模态&#xff1a;多模态&#xff08;Multimodality&#xff09;是指结合多种不同类型的数据…

开箱即用!一个功能丰富的 AI 语音工具箱!

当我们处理大量音频文件时&#xff0c;往往需要语音识别、转录甚至语音合成等多款工具协作完成工具。 这时候&#xff0c;要是有一款工具能够一站式解决从语音识别到语音合成的一切需求就好。 今天&#xff0c;我在 GitHub 上就发现了一款可本地部署的多功能 AI 语音工具箱&a…

塑造网络安全的关键事件

注&#xff1a;本文为 “网络安全” 相关文章合辑。 机翻&#xff0c;未校。 Timeline of Cyber Security: Key Events that Shaped the Field 网络安全时间表&#xff1a;塑造该领域的关键事件 October 29, 2023 Cyberattacks are an everyday threat, always changing. T…

每天一个Flutter开发小项目 (5) : 专业Flutter导航与路由 - 构建精美菜谱应用

引言 欢迎再次回到 每天一个Flutter开发小项目 系列博客!在前四篇博客中,我们逐步深入 Flutter 的世界,从基础的计数器、实用的待办事项列表,到联网的天气应用和状态管理的地点收藏应用,相信您已经对 Flutter 开发有了扎实的基础。 随着应用功能的不断扩展,页面间的跳转…

SourceTree配置SSH步骤详解

1. 生成SSH密钥对 如果尚未生成SSH密钥&#xff0c;需先创建&#xff1a; Windows/macOS/Linux通用方法 打开终端&#xff08;或Git Bash&#xff09;。 输入以下命令&#xff08;替换为你的邮箱&#xff09;&#xff1a; bash 复制 ssh-keygen -t ed25519 -C "your_em…

【大模型系列篇】大模型微调工具 LLama-Factory、Unsloth、ms-SWIFT

今日号外&#xff1a;&#x1f525;&#x1f525;&#x1f525; DeepSeek团队正式启动为期五天的开源计划 Day3&#xff1a;DeepGEMM。DeepGEMM 是一个专为简洁高效的 FP8 通用矩阵乘法&#xff08;GEMM&#xff09;设计的库&#xff0c;具有细粒度缩放功能&#xff0c;如 Deep…

springboot之HTML与图片生成

背景 后台需要根据字段动态生成HTML&#xff0c;并生成图片&#xff0c;发送邮件到给定邮箱 依赖 <!-- freemarker模板引擎--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifa…

MySQL安装多版本与版本切换

起因 今天在将一个项目部署到本地&#xff0c;找到的这个项目使用的MySQL版本是MySQL5.7&#xff0c;应该是比较古早的项目了&#xff0c;但是我现在装的是8.4版本的&#xff0c;所以涉及MySQL的版本切换&#xff0c;这里记录一下操作方法。 如何安全切换版本而不删除原有MySQ…