private void OnEndRotate(BaseHandle rotationHandle) { IMeshEditor meshEditor = GetEditor(); if (meshEditor != null) { rotationHandle.EnableUndo = true; Quaternion initialRotation = m_initialRotation; Quaternion endRotation = m_pivot.rotation; meshEditor.EndRotate(); Quaternion newStartRotation = GetPivotRotation(meshEditor); m_pivot.rotation = newStartRotation; if (UVEditingMode) { m_rte.Undo.EndRecordValue(UV, Strong.PropertyInfo((PBAutoUnwrapSettings x) => x.rotation)); } else { m_rte.Undo.CreateRecord(record => { meshEditor.BeginRotate(initialRotation); meshEditor.Rotate(endRotation); meshEditor.EndRotate(); m_pivot.transform.rotation = newStartRotation; return(true); }, record => { meshEditor.BeginRotate(endRotation); meshEditor.Rotate(initialRotation); meshEditor.EndRotate(); m_pivot.transform.rotation = initialRotation; return(true); }); } } }
private void OnBeginRotate(BaseHandle rotationHandle) { IMeshEditor meshEditor = GetEditor(); if (meshEditor != null) { rotationHandle.EnableUndo = false; m_initialRotation = GetPivotRotation(meshEditor); m_pivot.rotation = m_initialRotation; m_initialRight = m_pivot.TransformDirection(Vector3.right); m_initialUVRotation = UV.rotation; if (UVEditingMode) { m_rte.Undo.BeginRecordValue(UV, Strong.PropertyInfo((PBAutoUnwrapSettings x) => x.rotation)); } meshEditor.BeginRotate(m_initialRotation); } }