Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/MegaKnotAnimCurve.cs
2026-02-21 16:45:37 +08:00

77 lines
2.1 KiB
C#

using System;
using UnityEngine;
[Serializable]
public class MegaKnotAnimCurve
{
public AnimationCurve px = new AnimationCurve(new Keyframe(0f, 0f));
public AnimationCurve py = new AnimationCurve(new Keyframe(0f, 0f));
public AnimationCurve pz = new AnimationCurve(new Keyframe(0f, 0f));
public AnimationCurve ix = new AnimationCurve(new Keyframe(0f, 0f));
public AnimationCurve iy = new AnimationCurve(new Keyframe(0f, 0f));
public AnimationCurve iz = new AnimationCurve(new Keyframe(0f, 0f));
public AnimationCurve ox = new AnimationCurve(new Keyframe(0f, 0f));
public AnimationCurve oy = new AnimationCurve(new Keyframe(0f, 0f));
public AnimationCurve oz = new AnimationCurve(new Keyframe(0f, 0f));
public void GetState(MegaKnot knot, float t)
{
knot.p.x = px.Evaluate(t);
knot.p.y = py.Evaluate(t);
knot.p.z = pz.Evaluate(t);
knot.invec.x = ix.Evaluate(t);
knot.invec.y = iy.Evaluate(t);
knot.invec.z = iz.Evaluate(t);
knot.outvec.x = ox.Evaluate(t);
knot.outvec.y = oy.Evaluate(t);
knot.outvec.z = oz.Evaluate(t);
}
public void AddKey(MegaKnot knot, float t)
{
px.AddKey(new Keyframe(t, knot.p.x));
py.AddKey(new Keyframe(t, knot.p.y));
pz.AddKey(new Keyframe(t, knot.p.z));
ix.AddKey(new Keyframe(t, knot.invec.x));
iy.AddKey(new Keyframe(t, knot.invec.y));
iz.AddKey(new Keyframe(t, knot.invec.z));
ox.AddKey(new Keyframe(t, knot.outvec.x));
oy.AddKey(new Keyframe(t, knot.outvec.y));
oz.AddKey(new Keyframe(t, knot.outvec.z));
}
public void MoveKey(MegaKnot knot, float t, int k)
{
px.MoveKey(k, new Keyframe(t, knot.p.x));
py.MoveKey(k, new Keyframe(t, knot.p.y));
pz.MoveKey(k, new Keyframe(t, knot.p.z));
ix.MoveKey(k, new Keyframe(t, knot.invec.x));
iy.MoveKey(k, new Keyframe(t, knot.invec.y));
iz.MoveKey(k, new Keyframe(t, knot.invec.z));
ox.MoveKey(k, new Keyframe(t, knot.outvec.x));
oy.MoveKey(k, new Keyframe(t, knot.outvec.y));
oz.MoveKey(k, new Keyframe(t, knot.outvec.z));
}
public void RemoveKey(int k)
{
px.RemoveKey(k);
py.RemoveKey(k);
pz.RemoveKey(k);
ix.RemoveKey(k);
iy.RemoveKey(k);
iz.RemoveKey(k);
ox.RemoveKey(k);
oy.RemoveKey(k);
oz.RemoveKey(k);
}
}