事件编辑器初步
待办: 添加删除 复制粘贴 曲线预览
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Ichni;
|
||||
using Ichni.Editor;
|
||||
using Ichni.RhythmGame;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class GraphicalFlexibleFloatWindow : MovableWindow
|
||||
{
|
||||
public Button addNewUnitButton;
|
||||
public FlexibleFloatTab unitPrefab;
|
||||
public IBaseElement connectedBaseElement;
|
||||
public List<FlexibleFloatTab> unitList;
|
||||
public string parameterName;
|
||||
public UnityAction ApplyParameters;
|
||||
|
||||
|
||||
public float songTime => EditorManager.instance.songInformation.songTime;
|
||||
public float songBeat => EditorManager.instance.songInformation.songBeat;
|
||||
public float beatmapStartTime => -EditorManager.instance.songInformation.delay;
|
||||
public float timePerBeat => 60f / EditorManager.instance.songInformation.bpm;
|
||||
|
||||
public int BeatDeviver = 100;
|
||||
public void Initialize(IBaseElement baseElement, string title, FlexibleFloat[] FlexibleFloats, string[] Subtitles)
|
||||
{
|
||||
transform.localScale = Vector3.zero;
|
||||
this.connectedBaseElement = baseElement;
|
||||
this.title.text = title;
|
||||
unitList = new List<FlexibleFloatTab>();
|
||||
for (int i = 0; i <= FlexibleFloats.Length - 1; i++)
|
||||
{
|
||||
AddUnit(FlexibleFloats[i], Subtitles[i]);
|
||||
}
|
||||
|
||||
closeButton.onClick.AddListener(Quit);
|
||||
StartCoroutine(WindowAnim.ShowPanelOnScale(gameObject));
|
||||
ApplyParameters = () =>
|
||||
{
|
||||
|
||||
|
||||
for (int i = 0; i <= unitList.Count - 1; i++)
|
||||
{
|
||||
unitList[i].flexibleFloat.Sort();
|
||||
}
|
||||
//Dangered
|
||||
//connectedBaseElement.SetParameter(parameterName, unitList.Select(unit => unit.flexibleFloat).ToArray());
|
||||
};
|
||||
}
|
||||
public void AddUnit(FlexibleFloat flexibleFloat, string Subtitle)
|
||||
{
|
||||
flexibleFloat.Sort();
|
||||
FlexibleFloatTab flexibleFloatTab = Instantiate(unitPrefab, windowRect);
|
||||
flexibleFloatTab.FatherWindow = this;
|
||||
unitList.Add(flexibleFloatTab);
|
||||
flexibleFloatTab.Initialize(flexibleFloat, Subtitle);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public void Quit()
|
||||
{
|
||||
ApplyParameters();
|
||||
//StartCoroutine(WindowAnim.HidePanel(gameObject, true));
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user