您的位置:首页 > 移动开发 > Unity3D

unity3d 扩展NGUI Tweener —— TweenTime

2015-12-21 16:37 363 查看
这是今天做的一个小功能

策划想要一个时间滚动效果

那就搞呗!思路和之前写的tweenFillAmount一样

传送门:/article/4577974.html

时间格式:00:00:00

以下是代码,可以结合上文的链接一起看



#region HeadComments
/* ========================================================================
* Copyright (C) 2015 Arthun
*
* 作    者:Arthun
* 文件名称:TweenTime
* 功    能:滚动时间
* 创建时间:2015/12/21 15:51:58
*
* =========================================================================
*/
#endregion

using UnityEngine;

[RequireComponent(typeof(UILabel))]
[AddComponentMenu("NGUI/Tween/Tween Time")]
public class TweenTime : UITweener
{
public float from = 1f;
public float to = 1f;

private bool mCached = false;
private UILabel mLable;

private void Cache()
{
mCached = true;
mLable = GetComponent<UILabel>();
}

public float value
{
get
{
if (!mCached) Cache();
return 0f;
}
set
{
if (!mCached) Cache();
if (mLable != null)
mLable.text = getTimeFormat(value);
}
}

protected override void OnUpdate(float factor, bool isFinished) { value = Mathf.Lerp(from, to, factor); }

public override void SetStartToCurrentValue() { from = value; }

public override void SetEndToCurrentValue() { to = value; }

private string getTimeFormat(float time)
{
if (time <= 0) return "00:00:00";

System.TimeSpan ts = new System.TimeSpan(0, 0, (int)(time));
return ts.Hours.ToString().PadLeft(2, '0') + ":" + ts.Minutes.ToString().PadLeft(2, '0') + ":" + ts.Seconds.ToString().PadLeft(2, '0');
}
}


本文链接:/article/4577978.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: