unity3d ngui-TweenRotation-TweenPosition-TweenScale
2024-10-10 01:30:54
using UnityEngine;
using System.Collections; public class TweenFlipCARDS : MonoBehaviour
{
private float mfTime = 1.0f;
public GameObject positive;//牌正面
public GameObject reverse;//牌背面
private TweenRotation mPositiveTween;
private TweenRotation mReverseTween;
/// <summary> 半圈时间 </summary>
public float duration = 1; void Start()
{
mPositiveTween = positive.GetComponent<TweenRotation>();
if (mPositiveTween == null) mPositiveTween = positive.AddComponent<TweenRotation>(); mReverseTween = reverse.GetComponent<TweenRotation>();
if (mReverseTween == null) mReverseTween = reverse.AddComponent<TweenRotation>();
mPositiveTween.enabled = false;
mReverseTween.enabled = false;
reverse.gameObject.transform.localEulerAngles = new Vector3(0, 90, 0); //mPositiveTween.onFinished.Add(new EventDelegate(PositiveEventDelegate));
//mReverseTween.onFinished.Add(new EventDelegate(ReverseEventDelegate));
//mPositiveTween.callWhenFinished = "PositiveEventDelegate";
//mReverseTween.callWhenFinished = "ReverseEventDelegate";
// a是正面。b是反面。 分为4个时间段 1. a 从0转到90 。b精巧。2.a精巧。b 从90-0. 3.a精巧,b0-90. 4.a从90-0,b精巧。
StartCoroutine(waitShowReverseTime(mfTime));//显示一定的时间后再翻牌 }
IEnumerator waitShowReverseTime(float time)
{
yield return new WaitForSeconds(time);
mPositiveTween.from = Vector3.zero;
mPositiveTween.to = new Vector3(0, 90, 0);
mPositiveTween.duration = duration; mReverseTween.from = new Vector3(0, 90, 0);
mReverseTween.to = Vector3.zero;
mReverseTween.duration = duration; UIEventListener listener = UIEventListener.Get(positive.gameObject);
listener.onClick = ClickUIButton;
listener = UIEventListener.Get(reverse.gameObject);
listener.onClick = ClickUIButton; mPositiveTween.onFinished = PositiveEventDelegate;
mReverseTween.onFinished = ReverseEventDelegate; ClickUIButton(positive); }
GameObject mNowDown;
void ClickUIButton(GameObject click)
{
mNowDown = click;
if (click == positive)
{
PlayPositive(); }
else if (click == reverse)
{
PlayReverse();
}
}
/// <summary>
/// 翻牌
/// </summary>
public void PlayPositive()
{
mPositiveTween.Play(true);
}
/// <summary>
/// 复位
/// </summary>
public void PlayReverse()
{
mReverseTween.Play(false);
}
/// <summary>
/// 翻牌回调
/// </summary>
public void PositiveEventDelegate(UITweener tween)
{
if (mNowDown == mPositiveTween.gameObject) mReverseTween.Play(true);
}
/// <summary>
/// 复位回调
/// </summary>
public void ReverseEventDelegate(UITweener tween)
{
if (mNowDown == mReverseTween.gameObject) mPositiveTween.Play(false);
}
}上述代码均来自http://www.xiaobao1993.com/486.html
TweenScale同理,是控制其大小的,可用事实上现闪烁冒泡提示效果,如信息的提示;TweenPosition可实现方向指引效果,如新手引导箭头指引新手引导:为新手引导新建立一个UI窗体。里面包括一个半透明蒙版UISprite(全屏,用来挡住全部的UI)。箭头UISprite(加上述的TweePosition控制其上下或者左右指引,箭头位置可动态调整),而后再动态复制Clone一份要引导的UI在此窗体下并改变其Z层级显示在最上面,这样就实现了一个要引导的UI的突出效果
最新文章
- Hadoop中MR程序的几种提交运行模式
- JAVAWEB学习
- _fastcall
- 操作系统性能分析与优化V1.0
- Linux-编译器gcc/g++编译步骤
- 在config文件输入特殊字符
- 移动平台WEB前端开发技巧汇总
- eclipse quick diff功能
- DataGrid行详细信息的绑定--DataGrid.RowDetailsTe(转载)
- Linux中的MyEclipse配置Hadoop
- mongodb副本集中其中一个节点宕机无法重启的问题
- python中的缩进问题
- BJOI2019Day1 数据&;标程&;题解
- pandas,对dataFrame中某一个列的数据进行处理
- Oss文件存储
- ZOJ 3785 What day is that day?(数论:费马小定理)
- MapReduce原理
- Code Pages
- 【DS】排序算法的稳定性
- 【转】别跟我谈EF抵抗并发,敢问你到底会不会用EntityFramework
热门文章
- 转:什么是 HTTP Headers?
- 疯牛-- Aggressive cows (二分)
- JavaScript 字符串编码函数
- [TroubleShootin]The backup set holds a backup of a database other than the existing &;#39;xxdb&;#39; database.
- Core 中文文档
- checkbox探究
- 在Windows下编译OpenSSL(VS2005和VC6)
- Android 程式开发:(廿二)服务 —— 22.1 自定义服务
- POJ 2404 Jogging Trails
- javascript实现快速排