using System.Collections; using System.Collections.Generic; using UnityEngine; using AX.MessageSystem; using System; using AX.NetworkSystem; public class ObjRotate : MonoBehaviour { public float rotateSpeed = 60; // Use this for initialization void Start () { } // Update is called once per frame void Update () { } void OnEnable() { MessageDispatcher.AddListener("LEFT_ROTATE_COMMAND", LeftRotate); MessageDispatcher.AddListener("RIGHT_ROTATE_COMMAND", RightRotate); //MessageDispatcher.AddListener("UP_ROTATE_COMMAND", UpRotate); //MessageDispatcher.AddListener("DOWN_ROTATE_COMMAND", DownRotate); } void OnDisable() { MessageDispatcher.RemoveListener("LEFT_ROTATE_COMMAND", LeftRotate); MessageDispatcher.RemoveListener("RIGHT_ROTATE_COMMAND", RightRotate); //MessageDispatcher.RemoveListener("UP_ROTATE_COMMAND", UpRotate); //MessageDispatcher.RemoveListener("DOWN_ROTATE_COMMAND", DownRotate); } void OnDestroy() { MessageDispatcher.RemoveListener("LEFT_ROTATE_COMMAND", LeftRotate); MessageDispatcher.RemoveListener("RIGHT_ROTATE_COMMAND", RightRotate); //MessageDispatcher.RemoveListener("UP_ROTATE_COMMAND", UpRotate); //MessageDispatcher.RemoveListener("DOWN_ROTATE_COMMAND", DownRotate); } private void LeftRotate(IMessage obj) { if (SelectedObjs.selectedObj == gameObject) { transform.Rotate(0, -Time.deltaTime * rotateSpeed, 0, Space.World); //旋转同步 if (GameSettings.othersSettings.mode!=Mode.DisasterManagement) { var arg = new ObjRotateSyncData(); arg.SendUserID = CurrentUserInfo.mySelf.Id; arg.gameObjID = gameObject.GetComponent().gameObjID; arg.rotate = new Vector3(0, -Time.deltaTime * rotateSpeed, 0); arg.space = Space.World; NetworkManager.Default.SendAsync("OBJ_ROTATE_SYNC", arg); } } } private void RightRotate(IMessage obj) { if (SelectedObjs.selectedObj == gameObject) { transform.Rotate(0, Time.deltaTime * rotateSpeed, 0, Space.World); //旋转同步 if (GameSettings.othersSettings.mode != Mode.DisasterManagement) { var arg = new ObjRotateSyncData(); arg.SendUserID = CurrentUserInfo.mySelf.Id; arg.gameObjID = gameObject.GetComponent().gameObjID; arg.rotate = new Vector3(0, Time.deltaTime * rotateSpeed, 0); arg.space = Space.World; NetworkManager.Default.SendAsync("OBJ_ROTATE_SYNC", arg); } } } private void UpRotate(IMessage obj) { throw new NotImplementedException(); } private void DownRotate(IMessage obj) { throw new NotImplementedException(); } }