Files
ichni_Creator_Studio/Assets/Scripts/DynamicUI/DynamicUIElements/Composite/DynamicUICustomCurveKeyframeUnit.cs
2025-02-28 00:25:23 -05:00

45 lines
1.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Ichni.RhythmGame;
using TMPro;
using UnityEngine;
namespace Ichni.Editor
{
public class DynamicUICustomCurveKeyframeUnit : DynamicUICompositeUnit
{
public TMP_InputField timeInputField;
public TMP_InputField valueInputField;
public TMP_InputField inTangentInputField;
public TMP_InputField outTangentInputField;
public override void SetUnit(CompositeParameterWindow window, object itemContent)
{
compositeParameterWindow = window;
Keyframe keyframe = (Keyframe)itemContent;
timeInputField.text = keyframe.time.ToString();
valueInputField.text = keyframe.value.ToString();
inTangentInputField.text = keyframe.inTangent.ToString();
outTangentInputField.text = keyframe.outTangent.ToString();
timeInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
valueInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
inTangentInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
outTangentInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
removeButton.onClick.AddListener(() =>
{
compositeParameterWindow.RemoveUnit(this);
compositeParameterWindow.ApplyParameters();
});
}
public Keyframe GetValue()
{
return new Keyframe(float.Parse(timeInputField.text), float.Parse(valueInputField.text),
float.Parse(inTangentInputField.text), float.Parse(outTangentInputField.text));
}
}
}