|
目录:
1.Animation
2.UI动画例子1.Animation
Image
AnimationCilp 实际上是物体(对象)的一个一个动画信息,而我们需要去对这一系列的动画进行有效的管理我们则需要Animator对我们的Animation Cilp 进行管理;
动画系统的更加详细的操作
https://blog.csdn.net/m0_51743362/article/details/123459675
Image
动画的优先级很高,在动画播放中无法调整期参数。
Transitions
Image
Image
Transitions 用于动画与动画间的转化
动画过渡:是指一个动画状态过渡到另外一个时发生的行为事件。
各个参数的含义:
Has Exit Time:在Exit Time时刻发生过渡动作。如果勾选此项,并且设置了过渡条件,则需要到达Exit Time 并且满足过渡条件才能发生过渡的动作。两者有一个不满足都不会发生过渡动作。 如果希望满足了过渡条件就立即发生过渡动作,建议取消勾选此项。
Transition Duration:从一个动画过渡到另一个动画需要的时间。如果勾选了Fixed Duration,时间的单位为秒。
Transition Offset:意思为一个动画过渡到另一个动画,另一个动画从哪里开始(如果你的Transition Offset为0.5,动画会在50%处开始播放,并不会从0%开始播放)。
Interruption Source:打断优先级。如果 一个动画正在播放,突然某个动画达到了播放条件,则会打断正在播放地动画,播放达到条件的动画。
Conditions:决定动画过渡在何时被触发。一个Condition包括:1.一个事件的参数。 2.一个可选的断言。3.一个可选的参数值
Animation Parameters(动画参数) *Animation Parameters:是一系列在动画系统中定义的变量,可以通过脚本来进行访问和赋值。
Image
在Animator中的Parameters中可以设置动画参数,点击右上角的加号。参数的四种类型:
Float:浮点型
Int:整型
Bool:布尔型
Trigger:触发一个布尔值设置后,就可以在脚本中使用Animator类函数来赋值,包括SetTrigger,SetFloat,SetInterger和SetBool.
2.UI动画例子
其实UI动画相关使用Dowteen插件完成效果会更好
这里给出 dowteen 的学习地址
http://dotween.demigiant.com/documentation.php
下面是一个UI切换的实例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System;
public class Scene_switching: MonoBehaviour
{
[SerializeField]
public GameObject eventObj;
public Button btnA;
public Button btnB;
public Animator animator;
void Start()
{
GameObject.DontDestroyOnLoad(this.gameObject);
GameObject.DontDestroyOnLoad(this.eventObj);
//在场景切换的时候,不销毁UI
btnA.onClick.AddListener(loadSceneA);
btnB.onClick.AddListener(loadSceneB);
}
private void loadSceneA()
{
StartCoroutine(LoadScene(1));
}
private void loadSceneB()
{
StartCoroutine(LoadScene(2));
}
// IEnumerator 是 unity 中协程
IEnumerator LoadScene(int index)
{
//预先设定好animator 中的值
animator.SetBool("Fadein", true);
animator.SetBool("Fadeout", false);
yield return new WaitForSeconds(1);//等待一秒
//使用异步加载方式在完成的回调中调用淡出动画
AsyncOperation async = SceneManager.LoadSceneAsync(index);
async.completed += OnLoadedScene;
}
private void OnLoadedScene(AsyncOperation obj)
{
animator.SetBool("Fadein", false);
animator.SetBool("Fadeout", true);
}
}
Image
中
动画状态机
Image
在动画处理的时候要将动画融合与动画取消
Image
将动画循环取消
Image
参考
unity 官方文档
Silverjay银鸟工作室 SC101
Unity教程:制作场景切换过度效果
https://www.bilibili.com/video/BV1po4y1m7VY/?spm_id_from=333.337.search-card.all.click&vd_source=0df4a29627bff147b126992284147c5c |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|