143 lines
4.9 KiB
C#
143 lines
4.9 KiB
C#
using Ookii.Dialogs;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using UnityEngine.UIElements;
|
|
|
|
/// <summary>
|
|
/// 所有的视图管理器
|
|
/// </summary>
|
|
public class NoteEditWindowsView : MonoBehaviour
|
|
{
|
|
/// <summary>
|
|
/// 自身变换组件
|
|
/// </summary>
|
|
public Transform _Transform { get; private set; }
|
|
public TextMeshProUGUI Title { get; private set; }
|
|
|
|
public TMP_InputField Start_x { get; private set; }
|
|
public TMP_InputField Start_y { get; private set; }
|
|
public TMP_InputField TargetTime { get; private set; }
|
|
|
|
public TMP_InputField End_x { get; private set; }
|
|
public TMP_InputField End_y { get; private set; }
|
|
public TMP_InputField EndTime { get; private set; }
|
|
|
|
public TMP_InputField GroupNum { get; private set; }
|
|
|
|
public TMP_Dropdown Type { get; private set; }
|
|
|
|
void Awake()
|
|
{
|
|
_Transform = gameObject.GetComponent<Transform>();
|
|
Title = _Transform.Find("Title").GetComponent<TextMeshProUGUI>();
|
|
|
|
Start_x = _Transform.Find("X_InputField").GetComponent<TMP_InputField>();
|
|
Start_y = _Transform.Find("Y_InputField").GetComponent<TMP_InputField>();
|
|
TargetTime = _Transform.Find("TargetTimeTitle_InputField").GetComponent<TMP_InputField>();
|
|
|
|
End_x = _Transform.Find("EndX_InputField").GetComponent<TMP_InputField>();
|
|
End_y = _Transform.Find("EndY_InputField").GetComponent<TMP_InputField>();
|
|
EndTime = _Transform.Find("EndTime_InputField").GetComponent<TMP_InputField>();
|
|
|
|
GroupNum = _Transform.Find("GroupNum_InputField").GetComponent<TMP_InputField>();
|
|
|
|
Type = _Transform.Find("TypeDropdown").GetComponent<TMP_Dropdown>();
|
|
}
|
|
//这里将声明一个事件,叫做被编辑事件,当这里的数据发生更改时,这个视觉系统将触发这个事件
|
|
//此时主控会通过预先预先留好的接口获取数据
|
|
//那之后,这些数据将会更新主数据库
|
|
|
|
/// <summary>
|
|
/// 该接口用于更新窗口中的数据,识别传入的数据类型,并且更新为对应的模样
|
|
/// </summary>
|
|
public void UpdateWindowData(RuntimeBaseNoteData data)
|
|
{
|
|
Debug.Log(this.name + ":窗口编辑器中显示数据的类型为:" + data.GetType());
|
|
switch (data)
|
|
{
|
|
case RuntimeTapData:
|
|
{
|
|
初始化窗口();
|
|
Title.text = "Tap";
|
|
Start_x.text = data.xPos.ToString();
|
|
Start_y.text = data.yPos.ToString();
|
|
TargetTime.text = data.targetTime.ToString();
|
|
break;
|
|
}
|
|
case RuntimeDragData:
|
|
{
|
|
初始化窗口();
|
|
Title.text = "Drag";
|
|
Start_x.text = data.xPos.ToString();
|
|
Start_y.text = data.yPos.ToString();
|
|
TargetTime.text = data.targetTime.ToString();
|
|
break;
|
|
}
|
|
case RuntimeFlickData:
|
|
{
|
|
var flickData = data as RuntimeFlickData;
|
|
初始化窗口();
|
|
Title.text = "Flick";
|
|
Start_x.text = data.xPos.ToString();
|
|
Start_y.text = data.yPos.ToString();
|
|
TargetTime.text = data.targetTime.ToString();
|
|
|
|
//遍历枚举的方法
|
|
var flickDirection = Enum.GetValues(typeof(FlickDirection));
|
|
foreach (var item in flickDirection)
|
|
{
|
|
Type.options.Add(new TMP_Dropdown.OptionData(item.ToString()));
|
|
}
|
|
Type.SetValueWithoutNotify((int)flickData.direction);
|
|
|
|
break;
|
|
}
|
|
case RuntimeSnakeData:
|
|
{
|
|
var slider = data as RuntimeSnakeData;
|
|
初始化窗口();
|
|
Title.text = "Slider";
|
|
Start_x.text = data.xPos.ToString();
|
|
Start_y.text = data.yPos.ToString();
|
|
TargetTime.text = data.targetTime.ToString();
|
|
|
|
End_x.text = slider.endXPos.ToString();
|
|
End_y.text = slider.endYPos.ToString();
|
|
EndTime.text = slider.endTime.ToString();
|
|
|
|
//遍历枚举的方法
|
|
var referencePointLocation = Enum.GetValues(typeof(ReferencePointLocation));
|
|
foreach (var item in referencePointLocation)
|
|
{
|
|
Type.options.Add(new TMP_Dropdown.OptionData(item.ToString()));
|
|
}
|
|
Type.SetValueWithoutNotify((int)slider.referencePoint);
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
private void 初始化窗口()
|
|
{
|
|
Title.text = "null";
|
|
Start_x.text = "null";
|
|
Start_y.text = "null";
|
|
TargetTime.text = "null";
|
|
End_x.text = "null";
|
|
End_y.text = "null";
|
|
EndTime.text = "null";
|
|
GroupNum.text = "null";
|
|
|
|
Type.ClearOptions();
|
|
}
|
|
|
|
}
|