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

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

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

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 update
    void 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 frame
    void Update()
    {
        ZhuanOne(); // 每帧调用旋转方法
    }

    // 每帧都在执行的旋转事件
    public void ZhuanOne()
    {
        try
        {
            wai.transform.Rotate(Vector3.forward, speed);   // 外背景向前旋转
        }
        catch
        {
            // 捕获异常,防止旋转过程中出现错误
        }
        try
        {
            nei.transform.Rotate(Vector3.back, speed);   // 内背景向后旋转
        }
        catch
        {
            // 捕获异常,防止旋转过程中出现错误
        }
    }
}

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


http://www.kler.cn/a/564405.html

相关文章:

  • 2025最新智能优化算法:人工旅鼠算法(Artificial Lemming Algorithm, ALA)求解23个经典函数测试集,MATLAB
  • 神经网络中的Adam
  • 西电大数据安全与隐私Lab4(数据安全检索)
  • x64汇编下过程参数解析
  • 卡 bug 了?
  • SpringBoot集成easy-captcha图片验证码框架
  • Exoplayer(MediaX)实现音频变调和变速播放
  • mysql服务层介绍,NOSQL+SQL接口(nosql介绍),语法分析器,预处理器,优化器(优化的必要性,基于成本的优化器),缓存(弊端)
  • 【地图视界-Leaflet1】快速搭建你的第一个地图
  • IP-----动态路由OSPF
  • 【小白数学】为什么可以用拉格朗日乘子法求函数的极值【二】
  • 鸿蒙HarmonyOS NEXT开发:组件-样式-基础 2
  • 火绒终端安全管理系统V2.0网络防御功能介绍
  • undo log、redo log、bin log是什么
  • C# Enumerable类 之 数据筛选
  • 世坤量化兼职体验
  • 高数1.1 函数
  • web网络安全---cookie篇
  • 关于houdini 调用api
  • MySQL中的DATETIME与TIMESTAMP选择指南