public override void OnInspectorGUI() { Rect previewRect = EditorGUILayout.GetControlRect(new GUILayoutOption[] { GUILayout.Height(Camera.main.pixelRect.height * EditorGUIUtility.currentViewWidth / Camera.main.pixelRect.width) }); focuser.attachedTo = (Transform)EditorGUILayout.ObjectField("Attached To", focuser.attachedTo, typeof(Transform), true); EditorUtility.SetDirty(focuser); Undo.RecordObject(focuser, "Set AttachedTo"); focuser.zoom = EditorGUILayout.FloatField("Zoom", focuser.zoom); focuser.playerFocus = EditorGUILayout.Slider("Player Focus", focuser.playerFocus, 0, 1); focuser.snappiness = EditorGUILayout.Slider("Snappiness", focuser.snappiness, 0, 1); previewCam.transform.position = focuser.CalculateResultingPosition(previewPlayer.transform.position); previewCam.orthographicSize = focuser.zoom; Handles.DrawCamera(previewRect, previewCam); EditorGUIUtility.AddCursorRect(previewRect, MouseCursor.Pan); Undo.RecordObject(focuser, "Modified Focuser settings"); float m = 5; previewPlayer.transform.position = new Vector3(startPos.x + Mathf.Sin(Time.realtimeSinceStartup) * 5, startPos.y + Mathf.Cos(Time.realtimeSinceStartup) * 5, startPos.z); //Handles.ArrowHandleCap(0, previewCam.transform.position, previewCam.transform.rotation, 3, EventType.Repaint); //EditorGUIUtility.GUIToScreenPoint //EditorGUIUtility.GetFlowLayoutedRects //EditorGUIUtility.PingObject //EditorGUIUtility.ShowObjectPicker // update the preview whenever variable in RowMaker is changed //rowMaker.Preview(); }