45 lines
1.8 KiB
C#
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));
|
|
}
|
|
}
|
|
} |