public override void OnInspectorGUI() { ModularBuildingPiece modular = target as ModularBuildingPiece; if (!modular.locked) { base.OnInspectorGUI(); } else if (GUILayout.Button("Unlock Mesh")) { modular.locked = false; base.OnInspectorGUI(); } else { EditorGUILayout.Vector3IntField("Repeats (Preview)", modular.repeats); } }
public void OnSceneGUI() { ModularBuildingPiece t = (target as ModularBuildingPiece); if (!t.locked) { EditorGUI.BeginChangeCheck(); float size = HandleUtility.GetHandleSize(t.transform.position); var scale = Handles.ScaleHandle(Vector3.one + t.repeats, t.transform.position, t.transform.rotation, size * 1.5f); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Change Repeats Value"); t.repeats = new Vector3Int((int)scale.x, (int)scale.y, (int)scale.z) - Vector3Int.one; t.Update(); } } }