Files
Main/Assets/Editor/DIY/SkillEditor/SkillEditorFlyVfx.cs

49 lines
1.4 KiB
C#
Raw Permalink Normal View History

2025-01-25 04:38:09 +08:00
using Thousandto.SkillEditor.Support;
using System.Collections.Generic;
using UnityEngine;
namespace Thousandto.SkillEditor.DIY
{
public class SkillEditorFlyVfx
{
public EditorVFXScript Vfx = null;
public Vector3 OriPos = Vector3.zero;
public Vector3 TargetPos = Vector3.zero;
public AnimationCurve TimeCurve = null;
public AnimationCurve XFlyCurve = null;
public Vector3 XCurveDir = Vector3.left;
public AnimationCurve YFlyCurve = null;
public float Timer = 0f;
public float MaxTime = 0f;
public bool IsEnd
{
get
{
return Vfx == null;
}
}
public void Update()
{
if (Vfx != null)
{
Timer += Time.deltaTime;
if (Timer <= MaxTime)
{
var lerpValue = TimeCurve.Evaluate(Timer / MaxTime);
var pos = Vector3.Lerp(OriPos, TargetPos, lerpValue);
pos += XCurveDir * XFlyCurve.Evaluate(lerpValue);
pos += Vector3.up * YFlyCurve.Evaluate(lerpValue);
Vfx.transform.position = pos;
}
else
{
Vfx.transform.position = TargetPos;
Vfx.Stop();
Vfx = null;
}
}
}
}
}