using AX.InputSystem; using AX.MessageSystem; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; [Serializable] public class ZDSPData { public string name; public long id; public bool isWatering; public float HRoate; public float VRoate; public RotateAxis HAxis; public RotateAxis VAxis; public float scale; } public class ZDSPControl : ObjDoubleClick { //public bool IsWartering; //public Transform Body; //public Transform Pao; //private ZDSPParticle particle; //private long id; //private void Awake() //{ // if (gameObject.name.Split('_').Length > 0) // { // id = 1990199019901990 + (long.Parse)(gameObject.name.Split('_')[1]); // GetComponent().gameObjID = id; // gameObject.name = id.ToString(); // } // EntitiesManager.Instance.AddEntity(id, gameObject); // if (!SelectedObjs.gameObjs.Contains(gameObject)) // SelectedObjs.gameObjs.Add(gameObject); //} //private void Start() //{ // Body = transform.Find("PaoShen"); // Pao = Body.transform.Find("PaoGuan"); // // particle = Pao.transform.Find("WaterStraight").GetComponent(); // particle = transform.GetComponentInChildren(); // Debug.Log(particle.name); // MessageDispatcher.AddListener("EQUALS_COMMAND", PressureUp); // MessageDispatcher.AddListener("MINUS_COMMAND", PressureDown); // MessageDispatcher.AddListener("U_COMMAND", U); // MessageDispatcher.AddListener("J_COMMAND", J); // MessageDispatcher.AddListener("H_COMMAND", H); // MessageDispatcher.AddListener("K_COMMAND", K); // MessageDispatcher.AddListener("ReplayFrame", ReplayFrameZDSP); // MessageDispatcher.AddListener("ReplayEvent", ReplayEventZDSP); //} //public ZDSPData GetData() //{ // return new ZDSPData() // { // name = gameObject.name, // id = this.id, // isWatering = IsWartering, // scale = particle.GetScaleValue(), // xRoate = Body.localEulerAngles.z, // yRoate = Pao.localEulerAngles.x // }; //} //void SetData(ZDSPData data) //{ // id = data.id; // GetComponent().gameObjID = data.id; // IsWartering = data.isWatering; // particle.SetScaleValue(data.scale); // Body.localEulerAngles = new Vector3(Body.localEulerAngles.x, Body.localEulerAngles.y, data.xRoate); // Pao.localEulerAngles = new Vector3(data.yRoate, Pao.localEulerAngles.y, Pao.localEulerAngles.z); // if (IsWartering) // particle.gameObject.SetActive(true); // else // particle.gameObject.SetActive(false); //} //private void ReplayEventZDSP(IMessage obj) //{ // var eventData = (EventData)obj.Data; // if (eventData.eventType == RecordEventType.ZDSP) // { // ZDSPData data = JsonUtility.FromJson(eventData.json); // if (data.name == gameObject.name) // SetData(data); // } //} //private void ReplayFrameZDSP(IMessage obj) //{ // var objectData = (ObjectData)obj.Data; // if (objectData.cloneObjType == CloneObjType.ZDSP) // { // ZDSPData data = JsonUtility.FromJson(objectData.json); // if (data.name == gameObject.name) // SetData(data); // } //} //private void PressureDown(IMessage obj) //{ // if (IsWartering && SelectedObjs.selectedObj == gameObject && ReplaySetting.PlayStatus != PlayStatus.isReplay) // particle.Decrease(0.1f); // RecordEvent.AddEventData(CloneObjType.None, RecordEventType.ZDSP, JsonUtility.ToJson(GetData())); //} //private void PressureUp(IMessage obj) //{ // if (IsWartering && SelectedObjs.selectedObj == gameObject && ReplaySetting.PlayStatus != PlayStatus.isReplay) // particle.Increase(0.1f); // RecordEvent.AddEventData(CloneObjType.None, RecordEventType.ZDSP, JsonUtility.ToJson(GetData())); //} //private void K(IMessage obj) //{ // if (SelectedObjs.selectedObj == gameObject && ReplaySetting.PlayStatus != PlayStatus.isReplay) // { // var gameObjID = (long)obj.Sender; // if (GetComponent().gameObjID == gameObjID) // { // var speed = ((WeightCmdArgs)obj.Data).Weight; // speed = speed * 2; // float x = Body.localEulerAngles.x; // float y = Body.localEulerAngles.y; // float z = Body.localEulerAngles.z; // z = CheckValue(z); // z += speed; // if (z >= 360) // { // z -= 360; // } // if (z <= -360) // { // z += 360; // } // Body.localEulerAngles = new Vector3(x, y, z); // RecordEvent.AddEventData(CloneObjType.None, RecordEventType.ZDSP, JsonUtility.ToJson(GetData())); // } // } //} //private void H(IMessage obj) //{ // if (SelectedObjs.selectedObj == gameObject && ReplaySetting.PlayStatus != PlayStatus.isReplay) // { // var gameObjID = (long)obj.Sender; // if (GetComponent().gameObjID == gameObjID) // { // var speed = ((WeightCmdArgs)obj.Data).Weight; // speed = speed * 2; // float x = Body.localEulerAngles.x; // float y = Body.localEulerAngles.y; // float z = Body.localEulerAngles.z; // z = CheckValue(z); // z -= speed; // if (z >= 360) // { // z -= 360; // } // if (z <= -360) // { // z += 360; // } // Body.localEulerAngles = new Vector3(x, y, z); // RecordEvent.AddEventData(CloneObjType.None, RecordEventType.ZDSP, JsonUtility.ToJson(GetData())); // } // } //} //private void J(IMessage obj) //{ // if (SelectedObjs.selectedObj == gameObject && ReplaySetting.PlayStatus != PlayStatus.isReplay) // { // var gameObjID = (long)obj.Sender; // if (GetComponent().gameObjID == gameObjID) // { // var speed = ((WeightCmdArgs)obj.Data).Weight; // speed = speed * 2; // float x = Pao.localEulerAngles.x; // float y = Pao.localEulerAngles.y; // float z = Pao.localEulerAngles.z; // x = CheckValue(x); // x -= speed; // x = Mathf.Clamp(x, 15, 90); // Pao.localEulerAngles = new Vector3(x, y, z); // RecordEvent.AddEventData(CloneObjType.None, RecordEventType.ZDSP, JsonUtility.ToJson(GetData())); // } // } //} //private void U(IMessage obj) //{ // if (SelectedObjs.selectedObj == gameObject && ReplaySetting.PlayStatus != PlayStatus.isReplay) // { // var gameObjID = (long)obj.Sender; // if (GetComponent().gameObjID == gameObjID) // { // var speed = ((WeightCmdArgs)obj.Data).Weight; // speed = speed * 2; // float x = Pao.localEulerAngles.x; // float y = Pao.localEulerAngles.y; // float z = Pao.localEulerAngles.z; // x = CheckValue(x); // x += speed; // x = Mathf.Clamp(x, 15, 90); // Pao.localEulerAngles = new Vector3(x, y, z); // RecordEvent.AddEventData(CloneObjType.None, RecordEventType.ZDSP, JsonUtility.ToJson(GetData())); // } // } //} //private void OnDestroy() //{ // MessageDispatcher.RemoveListener("EQUALS_COMMAND", PressureUp); // MessageDispatcher.RemoveListener("MINUS_COMMAND", PressureDown); // MessageDispatcher.RemoveListener("U_COMMAND", U); // MessageDispatcher.RemoveListener("J_COMMAND", J); // MessageDispatcher.RemoveListener("H_COMMAND", H); // MessageDispatcher.RemoveListener("K_COMMAND", K); // MessageDispatcher.RemoveListener("ReplayFrame", ReplayFrameZDSP); // MessageDispatcher.RemoveListener("ReplayEvent", ReplayEventZDSP); // EntitiesManager.Instance.RemoveEntity(id, gameObject); //} //public override void ClickFunc() //{ // base.ClickFunc(); // if (!IsWartering) // ResourceLoadWindow.Instance.LoadTipWindow("开启喷水?", () => // { // IsWartering = true; // particle.gameObject.SetActive(true); // RecordEvent.AddEventData(CloneObjType.None, RecordEventType.ZDSP, JsonUtility.ToJson(GetData())); // }, null); // else // ResourceLoadWindow.Instance.LoadTipWindow("关闭喷水?", () => // { // IsWartering = false; // particle.gameObject.SetActive(false); // RecordEvent.AddEventData(CloneObjType.None, RecordEventType.ZDSP, JsonUtility.ToJson(GetData())); // }, null); //} ///// ///// 换算原始角度值为显式值 ///// ///// 获取的原始角度值 ///// //protected float CheckValue(float x) //{ // if (x >= 180 && x <= 360) // { // x = x - 360; // } // return x; // //举例:假如获取到的localEulerAngles.x = 300,则在显示面板其显示的值为-60=300-360,用此显式值计算 //} }