private void OnEndScale(BaseHandle scaleHandle) { IMeshEditor meshEditor = GetEditor(); if (meshEditor != null) { scaleHandle.EnableUndo = true; meshEditor.EndScale(); Vector3 newScale = m_pivot.localScale; Quaternion rotation = m_pivot.rotation; m_pivot.localScale = Vector3.one; if (UVEditingMode) { m_rte.Undo.EndRecordValue(UV, Strong.PropertyInfo((PBAutoUnwrapSettings x) => x.scale)); } else { m_rte.Undo.CreateRecord(record => { meshEditor.BeginScale(); meshEditor.Scale(newScale, rotation); meshEditor.EndScale(); return(true); }, record => { meshEditor.BeginScale(); meshEditor.Scale(new Vector3(1.0f / newScale.x, 1.0f / newScale.y, 1.0f / newScale.z), rotation); meshEditor.EndRotate(); return(true); }); } } }
private void OnBeginScale(BaseHandle scaleHandle) { IMeshEditor meshEditor = GetEditor(); if (meshEditor != null) { scaleHandle.EnableUndo = false; m_pivot.localScale = Vector3.one; m_initialUVScale = UV.scale; if (UVEditingMode) { m_rte.Undo.BeginRecordValue(UV, Strong.PropertyInfo((PBAutoUnwrapSettings x) => x.scale)); } meshEditor.BeginScale(); } }