541 lines
14 KiB
C#
541 lines
14 KiB
C#
|
|
|||
|
#define FUNCELL_MODIFIED
|
|||
|
using Thousandto.Core.Base;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace Thousandto.Plugins.Common
|
|||
|
{
|
|||
|
//alpha动画
|
|||
|
public class UIAlphaAnimation : UIAnimationBase
|
|||
|
{
|
|||
|
#region//私有变量
|
|||
|
//开始值
|
|||
|
private float _startValue = 0f;
|
|||
|
//结束值
|
|||
|
private float _endValue = 0f;
|
|||
|
//操作的对象
|
|||
|
private Transform _handleTrans = null;
|
|||
|
private UIPanel _handlePanel = null;
|
|||
|
private UIWidget _handleWidget = null;
|
|||
|
private UIButton _handleButton = null;
|
|||
|
//操作的UI
|
|||
|
private UINormalForm _handleForm = null;
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//属性
|
|||
|
public float StartValue
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _startValue;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_startValue = value;
|
|||
|
if(_startValue < 0.002f)
|
|||
|
{
|
|||
|
_startValue = 0.002f;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
public float EndValue
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _endValue;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_endValue = value;
|
|||
|
if (_endValue < 0.002f)
|
|||
|
{
|
|||
|
_endValue = 0.002f;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
public override Transform HandleTrans
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _handleTrans;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_handleTrans = value;
|
|||
|
_handlePanel = null;
|
|||
|
_handleWidget = null;
|
|||
|
_handleButton = null;
|
|||
|
_handleForm = null;
|
|||
|
if (_handleTrans != null)
|
|||
|
{
|
|||
|
_handlePanel = _handleTrans.GetComponent<UIPanel>();
|
|||
|
if (_handlePanel == null)
|
|||
|
{
|
|||
|
_handleWidget = _handleTrans.GetComponent<UIWidget>();
|
|||
|
}
|
|||
|
_handleButton = _handleTrans.GetComponent<UIButton>();
|
|||
|
_handleForm = _handleTrans.GetComponent<UINormalForm>();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static float GolbalAlpha { get; set; }
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//构造函数
|
|||
|
public UIAlphaAnimation()
|
|||
|
: base(UIAnimationType.Alpha)
|
|||
|
{
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//继承基类
|
|||
|
public override void Evaluate(float value)
|
|||
|
{
|
|||
|
var curValue = Mathf.Lerp(_startValue, _endValue, value) * GolbalAlpha;
|
|||
|
if(curValue < 0.002f)
|
|||
|
{
|
|||
|
curValue = 0.002f;
|
|||
|
}
|
|||
|
if (_handlePanel != null)
|
|||
|
{
|
|||
|
_handlePanel.alpha = curValue;
|
|||
|
}
|
|||
|
else if (_handleWidget != null)
|
|||
|
{
|
|||
|
_handleWidget.alpha = curValue;
|
|||
|
}
|
|||
|
|
|||
|
if (_handleForm != null)
|
|||
|
{
|
|||
|
//如果是UI,同步alpha到其子UI
|
|||
|
for (int i = 0; i < _handleForm.ChildList.Count; ++i)
|
|||
|
{
|
|||
|
var form = _handleForm.ChildList[i] as UINormalForm;
|
|||
|
if(form != null)
|
|||
|
{
|
|||
|
form.MainPanel.alpha = curValue;
|
|||
|
for (int j = 0; j < form.ChildList.Count; ++j)
|
|||
|
{
|
|||
|
form.ChildList[j].MainPanel.alpha = curValue;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnStart()
|
|||
|
{
|
|||
|
if (_handlePanel != null)
|
|||
|
{
|
|||
|
_handlePanel.alpha = _startValue;
|
|||
|
}
|
|||
|
if (_handleWidget != null)
|
|||
|
{
|
|||
|
if (_handleButton != null)
|
|||
|
{
|
|||
|
_handleWidget.alpha = 1f;
|
|||
|
if (_handleButton.normalSprite != null)
|
|||
|
{
|
|||
|
//访问这个变量,调用UIButton的OnInit函数
|
|||
|
}
|
|||
|
}
|
|||
|
_handleWidget.alpha = _startValue;
|
|||
|
}
|
|||
|
_waitFrame = 2;
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnStop()
|
|||
|
{
|
|||
|
_handleTrans = null;
|
|||
|
_handlePanel = null;
|
|||
|
_handleWidget = null;
|
|||
|
_handleForm = null;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
//缩放动画
|
|||
|
public class UIScaleAnimation : UIAnimationBase
|
|||
|
{
|
|||
|
#region//私有变量
|
|||
|
//开始值
|
|||
|
private Vector3 _startValue = Vector3.zero;
|
|||
|
//结束值
|
|||
|
private Vector3 _endValue = Vector3.zero;
|
|||
|
//操作的对象
|
|||
|
private Transform _handleTrans = null;
|
|||
|
//操作的UI
|
|||
|
private UINormalForm _handleForm = null;
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//属性
|
|||
|
//开始值
|
|||
|
public Vector3 StartValue
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _startValue;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_startValue = value;
|
|||
|
}
|
|||
|
}
|
|||
|
//结束值
|
|||
|
public Vector3 EndValue
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _endValue;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_endValue = value;
|
|||
|
}
|
|||
|
}
|
|||
|
//操作的对象
|
|||
|
public override Transform HandleTrans
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _handleTrans;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_handleForm = null;
|
|||
|
_handleTrans = value;
|
|||
|
if (_handleTrans != null)
|
|||
|
{
|
|||
|
_handleForm = _handleTrans.GetComponent<UINormalForm>();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//构造函数
|
|||
|
public UIScaleAnimation()
|
|||
|
: base(UIAnimationType.Scale)
|
|||
|
{
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//继承基类
|
|||
|
public override void Evaluate(float value)
|
|||
|
{
|
|||
|
var curScale = Vector3.Lerp(_startValue, _endValue, value);
|
|||
|
if (_handleTrans != null)
|
|||
|
{
|
|||
|
_handleTrans.localScale = curScale;
|
|||
|
if (_handleForm != null)
|
|||
|
{
|
|||
|
//如果是UI,同步缩放到其子UI
|
|||
|
for (int i = 0; i < _handleForm.ChildList.Count; ++i)
|
|||
|
{
|
|||
|
var form = _handleForm.ChildList[i] as UINormalForm;
|
|||
|
if (form != null && form.MainPanel.mStarted)
|
|||
|
{
|
|||
|
form.TransformInst.localScale = curScale;
|
|||
|
for (int j = 0; j < form.ChildList.Count; ++j)
|
|||
|
{
|
|||
|
if(form.ChildList[j].MainPanel.mStarted)
|
|||
|
{
|
|||
|
form.ChildList[j].TransformInst.localScale = curScale;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnStart()
|
|||
|
{
|
|||
|
_waitFrame = 2;
|
|||
|
if (_handleTrans != null)
|
|||
|
{
|
|||
|
if(_endValue.x >= 1)
|
|||
|
{
|
|||
|
_handleTrans.localScale = _endValue;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnStop()
|
|||
|
{
|
|||
|
_handleTrans = null;
|
|||
|
_handleForm = null;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
//位移动画
|
|||
|
public class UIPositionAnimation : UIAnimationBase
|
|||
|
{
|
|||
|
#region//私有变量
|
|||
|
//开始位置
|
|||
|
private Vector3 _startValue = Vector3.zero;
|
|||
|
//结束位置
|
|||
|
private Vector3 _endValue = Vector3.zero;
|
|||
|
//偏移位置
|
|||
|
private Vector3 _offsetPos = Vector3.zero;
|
|||
|
//操作的对象
|
|||
|
private Transform _handleTrans = null;
|
|||
|
//操作的UI
|
|||
|
private UINormalForm _handleForm = null;
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//属性
|
|||
|
//开始位置
|
|||
|
public Vector3 StartValue
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _startValue;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_startValue = value;
|
|||
|
}
|
|||
|
}
|
|||
|
//结束位置
|
|||
|
public Vector3 EndValue
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _endValue;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_endValue = value;
|
|||
|
}
|
|||
|
}
|
|||
|
//偏移位置
|
|||
|
public Vector3 OffsetPos
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _offsetPos;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_offsetPos = value;
|
|||
|
}
|
|||
|
}
|
|||
|
//操作的对象
|
|||
|
public override Transform HandleTrans
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _handleTrans;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_handleForm = null;
|
|||
|
_handleTrans = value;
|
|||
|
if(_handleTrans != null)
|
|||
|
{
|
|||
|
_handleForm = _handleTrans.GetComponent<UINormalForm>();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//构造函数
|
|||
|
public UIPositionAnimation()
|
|||
|
: base(UIAnimationType.Position)
|
|||
|
{
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//继承基类
|
|||
|
public override void Evaluate(float value)
|
|||
|
{
|
|||
|
var curPos = Vector3.Lerp(_startValue, _endValue, value);
|
|||
|
if (_handleTrans != null)
|
|||
|
{
|
|||
|
//动画播放不改变z值
|
|||
|
curPos.z = _handleTrans.localPosition.z;
|
|||
|
_handleTrans.localPosition = curPos;
|
|||
|
if(_handleForm != null)
|
|||
|
{
|
|||
|
//如果是UI,同步位置到其子UI
|
|||
|
for (int i = 0; i < _handleForm.ChildList.Count; ++i)
|
|||
|
{
|
|||
|
var form = _handleForm.ChildList[i] as UINormalForm;
|
|||
|
if (form != null && form.MainPanel.mStarted)
|
|||
|
{
|
|||
|
curPos.z = form.TransformInst.localPosition.z;
|
|||
|
form.TransformInst.localPosition = curPos;
|
|||
|
for (int j = 0; j < form.ChildList.Count; ++j)
|
|||
|
{
|
|||
|
if(form.ChildList[j].MainPanel.mStarted)
|
|||
|
{
|
|||
|
curPos.z = form.ChildList[j].TransformInst.localPosition.z;
|
|||
|
form.ChildList[j].TransformInst.localPosition = curPos;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnStart()
|
|||
|
{
|
|||
|
_waitFrame = 2;
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnStop()
|
|||
|
{
|
|||
|
_handleTrans = null;
|
|||
|
_handleForm = null;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
//空动画,占位用,持续一段时间什么也不做
|
|||
|
public class UIEmptyAnimation : UIAnimationBase
|
|||
|
{
|
|||
|
#region//私有变量
|
|||
|
//操作的对象
|
|||
|
private Transform _handleTrans = null;
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//属性
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//构造函数
|
|||
|
public UIEmptyAnimation()
|
|||
|
: base(UIAnimationType.Empty)
|
|||
|
{
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//继承基类
|
|||
|
public override Transform HandleTrans
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _handleTrans;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_handleTrans = value;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override void Evaluate(float value)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnStart()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnStop()
|
|||
|
{
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
//旋转动画
|
|||
|
public class UIRotationAnimation : UIAnimationBase
|
|||
|
{
|
|||
|
#region//私有变量
|
|||
|
//开始值
|
|||
|
private float _startValue = 0f;
|
|||
|
//结束值
|
|||
|
private float _endValue = 0f;
|
|||
|
//操作的对象
|
|||
|
private Transform _handleTrans = null;
|
|||
|
//操作的UI
|
|||
|
private UINormalForm _handleForm = null;
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//属性
|
|||
|
public float StartValue
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _startValue;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_startValue = value;
|
|||
|
}
|
|||
|
}
|
|||
|
public float EndValue
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _endValue;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_endValue = value;
|
|||
|
}
|
|||
|
}
|
|||
|
public override Transform HandleTrans
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return _handleTrans;
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
_handleForm = null;
|
|||
|
_handleTrans = value;
|
|||
|
if(_handleTrans != null)
|
|||
|
{
|
|||
|
_handleForm = _handleTrans.GetComponent<UINormalForm>();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//构造函数
|
|||
|
public UIRotationAnimation()
|
|||
|
: base(UIAnimationType.Rotation)
|
|||
|
{
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region//继承基类
|
|||
|
public override void Evaluate(float value)
|
|||
|
{
|
|||
|
var curValue = Mathf.Lerp(_startValue, _endValue, value);
|
|||
|
if (_handleTrans != null)
|
|||
|
{
|
|||
|
var euler = _handleTrans.localEulerAngles;
|
|||
|
euler.z = curValue;
|
|||
|
_handleTrans.localEulerAngles = euler;
|
|||
|
if (_handleForm != null)
|
|||
|
{
|
|||
|
//如果是UI,同步旋转到其子UI
|
|||
|
for (int i = 0; i < _handleForm.ChildList.Count; ++i)
|
|||
|
{
|
|||
|
euler = _handleForm.ChildList[i].TransformInst.localEulerAngles;
|
|||
|
euler.z = curValue;
|
|||
|
_handleForm.ChildList[i].TransformInst.localEulerAngles = euler;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnStart()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnStop()
|
|||
|
{
|
|||
|
_handleTrans = null;
|
|||
|
_handleForm = null;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
}
|