protected void DrawFoldoutArea(Rect controlRect) { DrawFoldout(controlRect); if (!string.IsNullOrEmpty(ReferenceLink)) { LDtkEditorGUI.DrawHelpIcon(controlRect, ReferenceLink, GuiText); } }
private void DrawNamespaceField() { LDtkEditorGUI.PropertyFieldWithDefaultText(_enumNamespaceProp, _namespaceLabel, "<Global namespace>"); if (!CSharpCodeHelpers.IsEmptyOrProperNamespaceName(_enumNamespaceProp.stringValue)) { using (new LDtkIconSizeScope(16)) { EditorGUILayout.HelpBox("Must be a valid C# namespace name", MessageType.Error); } } }
private bool DrawFieldAndButton(string defaultRefPath) { bool buttonClicked = false; using (new EditorGUILayout.HorizontalScope()) { Rect rect = LDtkEditorGUI.PropertyFieldWithDefaultText(_pathProp, _labelContent, defaultRefPath); buttonClicked = DrawButton(rect); } return(buttonClicked); }
private void OnGUI() { GUIContent content = new GUIContent("Export Path"); Rect controlRect = EditorGUILayout.GetControlRect(); // Rect labelRect = controlRect; //labelRect.xMax -= 20; //EditorGUI.LabelField(labelRect, _headerContent, EditorStyles.boldLabel); LDtkEditorGUI.DrawHelpIcon(controlRect, REFERENCE_LINK, GUI_TEXT); EditorGUILayout.PropertyField(_projectProp); GameObject obj = (GameObject)_projectProp.objectReferenceValue; if (TryInvalidPass(obj)) { return; } string pathToObject = AssetDatabase.GetAssetPath(obj); _pathDrawer = new PathDrawer(_exportPathProp, content, pathToObject, "The path to export the prefab and related assets to."); string exportPath = _pathDrawer.DrawFolderField(); if (!AssetDatabase.IsValidFolder(exportPath)) { EditorGUILayout.LabelField("Specify a folder path inside of the unity project. (Starting from Assets)"); EditorGUILayout.LabelField("Leave empty to export relative to the LDtk project's directory"); return; } if (!GUILayout.Button("Export")) { return; } exportPath += $"/{obj.name}_Export"; //first, reimport the LDtk project in case it was broken AssetDatabase.ImportAsset(pathToObject); //first try creating dupe assets LDtkProjectImporter assetImporter = (LDtkProjectImporter)AssetImporter.GetAtPath(pathToObject); LDtkArtifactAssets artifactAssets = AssetDatabase.LoadAssetAtPath <LDtkArtifactAssets>(pathToObject); _clonedAssets = new LDtkNativePrefabAssets(assetImporter, artifactAssets, exportPath); _clonedAssets.GenerateAssets(); CreateNativePrefab(obj, exportPath); }