海淀天下城电子沙盘单机版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.5 KiB

4 years ago
using AX.MessageSystem;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ArrowScalePanel : MonoBehaviour {
public static ArrowScalePanel Instance;
public Slider slider;
public ArrowSizeData data = new ArrowSizeData();
// Use this for initialization
void Awake () {
Instance = this;
slider = transform.Find("Slider").GetComponent<Slider>();
slider.onValueChanged.AddListener(SetSize);
gameObject.SetActive(false);
MessageDispatcher.AddListener("CANCEL_SELECTED_COMMAND", cancel);
MessageDispatcher.AddListener("ReplayEvent", ExecuteEvent);
MessageDispatcher.AddListener("SelectChange", selectchange);
}
private void ExecuteEvent(IMessage obj)
{
var item = (EventData)obj.Data;
if (item.eventType == RecordEventType.ArrowSizeChange)
{
var data = JsonUtility.FromJson<ArrowSizeData>(item.json);
MessageDispatcher.SendMessage("ArrowSizeChange", data);
}
}
private void OnDestroy()
{
MessageDispatcher.RemoveListener("CANCEL_SELECTED_COMMAND", cancel);
MessageDispatcher.RemoveListener("ReplayEvent", ExecuteEvent);
MessageDispatcher.RemoveListener("SelectChange", selectchange);
}
private void selectchange(IMessage obj)
{
gameObject.SetActive(false);
}
private void cancel(IMessage obj)
{
gameObject.SetActive(false);
data.id = -1;
slider.value = 0;
}
public void OpenPanel(long id,float value)
{
data.id = id;
slider.value = value;
gameObject.SetActive(true);
}
void SetSize(float value)
{
data.value = value;
MessageDispatcher.SendMessage("ArrowSizeChange", data);
AddReplayChangeEvent(data);
}
private void AddReplayChangeEvent(ArrowSizeData data)
{
if (ReplaySetting.PlayStatus == PlayStatus.isEditor && RecordManager.Instance.recordStatus == RecordStatus.normal)
{
var eventData = new EventData();
eventData.time = RecordManager.Instance.RecordTimer;
//eventData.cloneObjType = cloneObjType;
eventData.eventType = RecordEventType.ArrowSizeChange;
string json = JsonUtility.ToJson(data);
eventData.json = json;
RecordManager.Instance.jsonData.eventDataList.Add(eventData);
}
}
}
public class ArrowSizeData
{
public long id;
public float value;
}