using System.Collections; using System.Collections.Generic; using UnityEngine; public class RotationCommand : ICommand { GameObject _rotatingObject; Vector3 _initialRotation; Vector3 _initialPosition; Vector3 _newRotation; Vector3 _newPosition; string _objectName; public RotationCommand(GameObject rotatingObject, Vector3 initialRotation, Vector3 initialPosition,Vector3 finalRotation, Vector3 finalPosition) { _rotatingObject = rotatingObject; _initialPosition = initialPosition; _objectName = rotatingObject.name; _initialRotation = initialRotation; _newPosition = finalPosition; _newRotation = finalRotation; } public void Execute() { if (_rotatingObject == null) return; _rotatingObject.transform.eulerAngles = _newRotation; _rotatingObject.transform.position = _newPosition; OnMoveFinished(); } public void Undo() { if (_rotatingObject == null) return; _rotatingObject.transform.eulerAngles = _initialRotation; _rotatingObject.transform.position = _initialPosition; OnMoveFinished(); } public void UpdateCommand() { if (_rotatingObject != null) return; _rotatingObject = GameObject.Find(_objectName); } void OnMoveFinished() { //Debug.LogWarning(_rotatingObject.transform.eulerAngles); SceneModeManager.SelectedName = _rotatingObject.name; DOIT.SaveObjectPositionInData(_rotatingObject); TopControl.ShowMesure(); // Need to Make this gameobject or group of gameObject the selected GameObject and display the right } public string GetAction() { return "Rotate"; } }