You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Timeline;
|
|
|
|
namespace Game
|
|
{
|
|
public class ClipThrowPosition : TimelineClipBase
|
|
{
|
|
private ThrowPositionClip _mRealAsset;
|
|
private GameEntity target;
|
|
|
|
public override void OnEnter()
|
|
{
|
|
_mRealAsset = Asset as ThrowPositionClip;
|
|
target = Util.GetEntity(Owner.skill.ThrowTarget);
|
|
SetPos(_mRealAsset.template.startPos);
|
|
}
|
|
|
|
public override void OnStay()
|
|
{
|
|
var rate = (Owner.timeline.TimePast - StartTime) / (EndTime - StartTime);
|
|
var pos = Vector3.Lerp(_mRealAsset.template.startPos, _mRealAsset.template.endPos, (float)rate);
|
|
SetPos(pos);
|
|
}
|
|
|
|
public override void OnLeave()
|
|
{
|
|
SetPos(_mRealAsset.template.endPos);
|
|
}
|
|
|
|
private void SetPos(Vector3 pos)
|
|
{
|
|
var relatedPos = new Vector3(pos.x * (Owner.move.IsRight ? 1 : -1), pos.y, pos.z);
|
|
var targetPos = Owner.Pos() + relatedPos;
|
|
target.SetPos(targetPos);
|
|
}
|
|
}
|
|
} |