public static void LocalTransposeAroundAnchor(this Transform trans, Transform anchor, Vector3 position, Quaternion rotation) { var m = anchor.GetRelativeMatrix(trans); var anchorPos = rotation * Vector3.Scale(m.GetTranslation(), trans.localScale); trans.localPosition = position - anchorPos; trans.localRotation = m.GetRotation() * rotation; }