Unity UI动画通过布尔变量来转换状态机的模板

通过布尔变量来转换状态机的模板

适用状态机的基本模式:

例如点一下弹出托盘,再点一下托盘收回的事件
例如点一下弹出托盘,再点一下托盘收回的事件

状态机说明:其中ButtomPanel为收回状态,bool 变量 “press”为 true 的时候通过ButtomPanel2(即托盘弹出动画),ButtomPanel3为弹出状态,bool 变量 “press”为 false 的时候通过ButtomPanel4(即托盘收回动画)回到初始状态。
其中2→3,4→1之间不设置通过条件。

使用方法:

  1. 为UI控件做状态机动画如上图,新建Bool变量作为控制条件。(此处我的Bool变量变量名为“Press”)
  2. 将脚本挂在含有动画的UI控件上(即有组件Animator的UI控件上)
    其中"Parameter_name"即为需要进行往复改变的Bool 变量名称
  3. 在脚本中“Parameter_name"处填入需要进行往复改变的Bool 变量名称
  4. 建立一个Button,通过点击触发事件
    在这里插入图片描述
    OnClick中前面填入含有”Animator”组件的动画根文件,后面选择UIPanel.AddCount。

脚本代码

UIPanel代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UIPanel : MonoBehaviour
{
    // Start is called before the first frame update
    Animator animator;
    public static int Presscount=0;
    public string parameter_name;

    void Start()
    {
        animator = GetComponent<Animator>();
    }
    
    // Update is called once per frame
    
    void Update()
    {
        switch(Presscount)
        {
            case 1:
                animator.SetBool(parameter_name, true);
                break;
            case 2:
                animator.SetBool(parameter_name, false);
                Presscount=0;
                break;
        }
    }
    public void AddCount()
    {
        Presscount++; 
        Debug.Log(Presscount);
    }
}
Unity动画状态机是一种用于控制游戏对象动画行为的工具。它基于状态机的概念,通过定义不同的状态和状态之间的转换来实现动画的播放和切换。 在Unity,可以通过以下步骤来实现动画状态机: 1. 创建动画状态机:在Unity编辑器,可以创建一个Animator Controller(动画控制器)作为动画状态机的容器。可以通过右键点击Assets面板,选择Create -> Animator Controller来创建。 2. 添加动画状态:在Animator Controller,可以添加多个动画状态。每个动画状态代表一个特定的动画片段或动画行为。可以通过拖拽动画片段或者创建新的动画状态来添加。 3. 设置状态之间的转换:在Animator Controller,可以设置不同状态之间的转换条件。转换条件可以是触发器、布尔、整数等。当满足转换条件时,Animator会自动切换到下一个状态。 4. 添加过渡动画:在状态之间的转换过程,可以添加过渡动画来实现平滑的过渡效果。可以设置过渡动画的淡入淡出时间、过渡曲线等参数。 5. 控制动画播放:通过代码或者其他方式,可以控制Animator组件的参数来触发状态之间的转换动画的播放。例如,可以使用Animator.SetTrigger()方法来触发转换条件。 总结一下,Unity动画状态机通过定义不同的状态和状态之间的转换来实现动画的播放和切换。它是一种强大的工具,可以帮助开发者实现复杂的动画逻辑和交互效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值