Files
ichni_Creator_Studio/Assets/Scripts/DynamicUI/DynamicUIElements/Composite/DynamicUIAnimatedFloatUnit.cs

59 lines
2.7 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
2025-02-13 14:26:37 -05:00
using System.Linq;
using Ichni.RhythmGame;
using TMPro;
using UnityEngine;
2025-02-13 14:26:37 -05:00
using UnityEngine.Serialization;
2025-02-13 14:26:37 -05:00
namespace Ichni.Editor
{
2025-02-13 14:26:37 -05:00
public class DynamicUIAnimatedFloatUnit : DynamicUICompositeUnit
{
2025-02-13 14:26:37 -05:00
public TMP_InputField startTimeInputField;
public TMP_InputField endTimeInputField;
public TMP_InputField startValueInputField;
public TMP_InputField endValueInputField;
public TMP_Dropdown animationCurveTypeDropdown;
2025-02-13 14:26:37 -05:00
public override void SetUnit(CompositeParameterWindow window, object itemContent)
{
startTimeInputField.text = "0";
endTimeInputField.text = "0";
startValueInputField.text = "0";
endValueInputField.text = "0";
animationCurveTypeDropdown.value = 0;
2025-02-13 14:26:37 -05:00
compositeParameterWindow = window;
2025-02-13 14:26:37 -05:00
AnimatedFloat animatedFloat = (AnimatedFloat)itemContent;
startTimeInputField.text = animatedFloat.startTime.ToString();
endTimeInputField.text = animatedFloat.endTime.ToString();
startValueInputField.text = animatedFloat.startValue.ToString();
endValueInputField.text = animatedFloat.endValue.ToString();
animationCurveTypeDropdown.ClearOptions();
List<string> enumNameList = System.Enum.GetNames(typeof(AnimationCurveType)).ToList();
animationCurveTypeDropdown.AddOptions(enumNameList);
animationCurveTypeDropdown.value = (int)animatedFloat.animationCurveType;
2025-02-13 14:26:37 -05:00
startTimeInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
endTimeInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
startValueInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
endValueInputField.onEndEdit.AddListener(_ => compositeParameterWindow.ApplyParameters());
animationCurveTypeDropdown.onValueChanged.AddListener(_ => compositeParameterWindow.ApplyParameters());
2025-02-13 14:26:37 -05:00
removeButton.onClick.AddListener(() =>
{
compositeParameterWindow.RemoveUnit(this);
compositeParameterWindow.ApplyParameters();
});
}
2025-02-13 14:26:37 -05:00
public AnimatedFloat GetValue()
{
return new AnimatedFloat(float.Parse(startTimeInputField.text), float.Parse(endTimeInputField.text),
float.Parse(startValueInputField.text), float.Parse(endValueInputField.text),
(AnimationCurveType)animationCurveTypeDropdown.value);
}
}
2025-02-13 14:26:37 -05:00
}