Animation Silder实现动画播时滑动条随之滑动
来源:互联网 发布:用js怎么写九九乘法表 编辑:程序博客网 时间:2024/05/18 14:26
需要播放动画的各个按钮都挂上AnimSlider脚本并勾掉勾选,并调用isSet()函数和按钮对应的Toggle_1函数,才不会互相干扰
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections;
using UnityEngine.UI;
public class AnimSlider : MonoBehaviour
{
public static AnimSlider Instance;//单例模式
public Animation MyAnim;
public string Name;
public Slider us;
public float AnimaTime = 0.0f;
public bool isBegin = false;
public bool isStart = false;
// Use this for initialization
{
public static AnimSlider Instance;//单例模式
public Animation MyAnim;
public string Name;
public Slider us;
public float AnimaTime = 0.0f;
public bool isBegin = false;
public bool isStart = false;
// Use this for initialization
void Awake()
{
{
Instance = this; //单例模式
}
}
void Start()
{
{
}
// Update is called once per frame
void Update()
{
if (isBegin)
{
if (isStart)
{
AnimaTime += Time.deltaTime;//计数Update的运行时间
PlayToStart(AnimaTime);
if (AnimaTime > MyAnim[Name].length)
{
AnimaTime = 0.0f;
isStart = false;
isBegin = false;
}
}
//每一帧运行时间的累加,除以动画长度,得到Silder的Value是个比例
us.value = AnimaTime / MyAnim[Name].length;
}
void Update()
{
if (isBegin)
{
if (isStart)
{
AnimaTime += Time.deltaTime;//计数Update的运行时间
PlayToStart(AnimaTime);
if (AnimaTime > MyAnim[Name].length)
{
AnimaTime = 0.0f;
isStart = false;
isBegin = false;
}
}
//每一帧运行时间的累加,除以动画长度,得到Silder的Value是个比例
us.value = AnimaTime / MyAnim[Name].length;
}
}
/// <summary>
///
/// </summary>
/// <param name="Atime"></param>
public void PlayToStart(float Atime)
{
MyAnim.enabled = true;
MyAnim.CrossFade(Name);
MyAnim[Name].speed = 0.0f; //动画播放速度为0
MyAnim[Name].normalizedTime = Atime / MyAnim[Name].length;// MyAnim[Name].normalizedTime =某个0-1的值
}
/// <summary>
/// 设置AnimSlder回到初始值
/// </summary>
public void isSet()
{
PlayToStart(0.0f);//每次按下手术步骤时,动画回到第一帧
AnimaTime = 0.0f; //计数器也从0开始重新计数
us.value = 0.0f; //Slider的值归0,即回到开始状态
isStart = true; //Update开始有效
isBegin = true;
}
}
/// <summary>
///
/// </summary>
/// <param name="Atime"></param>
public void PlayToStart(float Atime)
{
MyAnim.enabled = true;
MyAnim.CrossFade(Name);
MyAnim[Name].speed = 0.0f; //动画播放速度为0
MyAnim[Name].normalizedTime = Atime / MyAnim[Name].length;// MyAnim[Name].normalizedTime =某个0-1的值
}
/// <summary>
/// 设置AnimSlder回到初始值
/// </summary>
public void isSet()
{
PlayToStart(0.0f);//每次按下手术步骤时,动画回到第一帧
AnimaTime = 0.0f; //计数器也从0开始重新计数
us.value = 0.0f; //Slider的值归0,即回到开始状态
isStart = true; //Update开始有效
isBegin = true;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Collections.Generic;
using UnityEngine;
public class SliderAniManager : MonoBehaviour {
public GameObject[] SSLC_Toggle;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
/// <summary>
/// 开启和关闭的动画脚本AnimSlider
/// </summary>
public void EnableAnimSlder(bool isActive)
{
for (int i = 0; i < SSLC_Toggle.Length; i++)
{
SSLC_Toggle[i].GetComponent<AnimSlider>().enabled = isActive;
}
}
//------------------------------各个步骤的按钮控制脚本------------------------------------------------------------------------------/
public void Toggle_0()
{
EnableAnimSlder(false);
public GameObject[] SSLC_Toggle;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
/// <summary>
/// 开启和关闭的动画脚本AnimSlider
/// </summary>
public void EnableAnimSlder(bool isActive)
{
for (int i = 0; i < SSLC_Toggle.Length; i++)
{
SSLC_Toggle[i].GetComponent<AnimSlider>().enabled = isActive;
}
}
//------------------------------各个步骤的按钮控制脚本------------------------------------------------------------------------------/
public void Toggle_0()
{
EnableAnimSlder(false);
SSLC_Toggle[0].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_1()
{
EnableAnimSlder(false);
SSLC_Toggle[1].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_2()
{
EnableAnimSlder(false);
SSLC_Toggle[2].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_3()
{
EnableAnimSlder(false);
SSLC_Toggle[3].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_4()
{
EnableAnimSlder(false);
SSLC_Toggle[4].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_5()
{
EnableAnimSlder(false);
SSLC_Toggle[5].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_6()
{
EnableAnimSlder(false);
SSLC_Toggle[6].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_7()
{
EnableAnimSlder(false);
SSLC_Toggle[7].GetComponent<AnimSlider>().enabled = true;
}
}
public void Toggle_1()
{
EnableAnimSlder(false);
SSLC_Toggle[1].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_2()
{
EnableAnimSlder(false);
SSLC_Toggle[2].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_3()
{
EnableAnimSlder(false);
SSLC_Toggle[3].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_4()
{
EnableAnimSlder(false);
SSLC_Toggle[4].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_5()
{
EnableAnimSlder(false);
SSLC_Toggle[5].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_6()
{
EnableAnimSlder(false);
SSLC_Toggle[6].GetComponent<AnimSlider>().enabled = true;
}
public void Toggle_7()
{
EnableAnimSlder(false);
SSLC_Toggle[7].GetComponent<AnimSlider>().enabled = true;
}
}
阅读全文
0 0
- Animation Silder实现动画播时滑动条随之滑动
- 页面水平滑动Silder
- ScrollView滑动实现标题栏透明度随之渐变
- ViewPager 滑动条 动画
- 实现可滑可点的fragment,使上方的导航条随着fragment的切换而随之变动即滑动,导航条可自由滑动
- cocos2dx滑动条实现
- MFC 滑动条实现
- 滑动索引条实现
- opencv实现视频播放时滑动条滑动
- Tab动画滑动实现
- js实现滑动条效果
- 自主实现滑动指示条
- ViewPager实现滑动滚动条
- listview左右滑动动画实现
- ViewPager滑动动画效果实现
- unity 滑动条控制动画播放代码
- unity 滑动条控制动画播放代码
- 滑动silder切换图片,向上弹出设置层
- [LeetCode]58. Length of Last Word
- erlang开发工具之intellij idea基本使用
- Java中文转GBK码
- <背包DP>codevs 1684 垃圾陷阱
- Yaml简易学习
- Animation Silder实现动画播时滑动条随之滑动
- android面试-内存泄漏(美图、久邦面涉及到)
- JDK7中ExecutorService源码概述
- 揭秘云栖大会VR直播云服务解决方案的技术亮点和核心能力
- UVa11538
- 习题4.2
- React-Native学习笔记(一)
- java 中取整操作提供了四种方法
- PullToRefreshListView 获取网络数据实现上下拉刷新加载数据