unity3d ngui-TweenRotation-TweenPosition-TweenScale
2015-06-03 17:51
519 查看
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的突出效果
相关文章推荐
- Kinect结合Unity3D引擎开发体感游戏(一)
- JavaScript Tween算法及缓动效果第1/2页
- JS Tween 颜色渐变
- Android Tween动画之RotateAnimation实现图片不停旋转效果实例介绍
- Unity3D中脚本的执行顺序和编译顺序
- Unity3D动态对象优化代码分享
- unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android apk)
- Unity3D游戏引擎实现在Android中打开WebView的实例
- unity3d调用手机或电脑摄像头
- 分享一个开源的网络游戏服务器架构—HouHai
- Unity3D插件详细评测及教学下载
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关