public override void OnInspectorGUI() { serializedObject.Update(); using (new EditorGUILayout.HorizontalScope()) { EditorGUILayout.HelpBox("After finished editing, Save Project to reimport all LDtk projects that use this tile", MessageType.None); GUIContent saveButtonLabel = new GUIContent { tooltip = "Save Project", image = LDtkIconUtility.GetUnityIcon("SaveAs", "") }; if (GUILayout.Button(saveButtonLabel, GUILayout.Width(30), GUILayout.ExpandHeight(true))) { AssetDatabase.SaveAssets(); } } LDtkEditorGUIUtility.DrawDivider(); serializedObject.DrawField(LDtkIntGridTile.PROPERTY_TAG, _tagLabel); serializedObject.DrawField(LDtkIntGridTile.PROPERTY_LAYERMASK, _layerMaskLabel); serializedObject.DrawField(LDtkIntGridTile.PROPERTY_PHYSICS_MATERIAL, _physicsMaterialLabel); LDtkEditorGUIUtility.DrawDivider(); SerializedProperty colliderTypeProp = serializedObject.DrawField(LDtkIntGridTile.PROPERTY_COLLIDER_TYPE, _colliderLabel); if (colliderTypeProp.enumValueIndex == (int)Tile.ColliderType.Sprite || serializedObject.isEditingMultipleObjects) { SerializedProperty physicsSpriteProp = serializedObject.DrawField(LDtkIntGridTile.PROPERTY_CUSTOM_PHYSICS_SPRITE, _spriteLabel); if (physicsSpriteProp.objectReferenceValue != null && !serializedObject.isEditingMultipleObjects) { DrawCollisionShape((Sprite)physicsSpriteProp.objectReferenceValue); } } LDtkEditorGUIUtility.DrawDivider(); SerializedProperty gameObjectProp = serializedObject.DrawField(LDtkIntGridTile.PROPERTY_GAME_OBJECT, _gameObjectLabel); LDtkSectionDrawer.DenyPotentialResursiveGameObjects(gameObjectProp); if (gameObjectProp.objectReferenceValue != null && !serializedObject.isEditingMultipleObjects) { DrawGameObjectPreview((GameObject)gameObjectProp.objectReferenceValue); } serializedObject.ApplyModifiedProperties(); }
public override void Draw() { EditorGUILayout.PropertyField(Value, ObjectContent()); LDtkSectionDrawer.DenyPotentialResursiveGameObjects(Value); }