From 1f1ac4ae740d6f1859530c13d178e3e4e9059f96 Mon Sep 17 00:00:00 2001 From: Daniel Cumbor Date: Sun, 13 Jul 2025 19:34:38 +0100 Subject: [PATCH] Reupload to new git vps. --- DCBlankParentObject.asmdef | 3 ++ DCBlankParentObject.asmdef.meta | 7 +++ Editor.meta | 8 ++++ Editor/BlankParentObjectEditor.cs | 63 ++++++++++++++++++++++++++ Editor/BlankParentObjectEditor.cs.meta | 2 + Runtime.meta | 8 ++++ Runtime/BlankParentObject.cs | 25 ++++++++++ Runtime/BlankParentObject.cs.meta | 2 + package.json | 13 ++++++ package.json.meta | 7 +++ 10 files changed, 138 insertions(+) create mode 100644 DCBlankParentObject.asmdef create mode 100644 DCBlankParentObject.asmdef.meta create mode 100644 Editor.meta create mode 100644 Editor/BlankParentObjectEditor.cs create mode 100644 Editor/BlankParentObjectEditor.cs.meta create mode 100644 Runtime.meta create mode 100644 Runtime/BlankParentObject.cs create mode 100644 Runtime/BlankParentObject.cs.meta create mode 100644 package.json create mode 100644 package.json.meta diff --git a/DCBlankParentObject.asmdef b/DCBlankParentObject.asmdef new file mode 100644 index 0000000..4093fb8 --- /dev/null +++ b/DCBlankParentObject.asmdef @@ -0,0 +1,3 @@ +{ + "name": "DCBlankParentObject" +} diff --git a/DCBlankParentObject.asmdef.meta b/DCBlankParentObject.asmdef.meta new file mode 100644 index 0000000..522a879 --- /dev/null +++ b/DCBlankParentObject.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 61d1c1edaeaf78c46ac8ceaf339d290b +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor.meta b/Editor.meta new file mode 100644 index 0000000..d79923a --- /dev/null +++ b/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 29a62a24ea6eda14994f0232157d71f2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/BlankParentObjectEditor.cs b/Editor/BlankParentObjectEditor.cs new file mode 100644 index 0000000..cf14427 --- /dev/null +++ b/Editor/BlankParentObjectEditor.cs @@ -0,0 +1,63 @@ +#if UNITY_EDITOR +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; + +namespace DC.Tools +{ + [CustomEditor(typeof(BlankParentObject))] + [CanEditMultipleObjects] + public class BlankParentObjectEditor : Editor + { + private BlankParentObject _blankParentObject; + private Tool _lastTool = Tool.None; + + private void OnEnable() + { + CheckAndSetObject(); + + if (_blankParentObject == null) + { + Debug.LogError("Cannot find BlankParentObject"); + + return; + } + + _blankParentObject.ZeroTransform(); + + if (_blankParentObject.GetComponents()[0] != _blankParentObject) + ComponentUtility.MoveComponentUp(_blankParentObject); + + _lastTool = UnityEditor.Tools.current; + } + + private void OnDisable() + { + UnityEditor.Tools.current = _lastTool; + } + + public override void OnInspectorGUI() + { + CheckAndSetObject(); + + var objectTransform = _blankParentObject.gameObject.GetComponent(); + if (objectTransform.hideFlags != HideFlags.HideInInspector) + objectTransform.hideFlags = HideFlags.HideInInspector; + + if (UnityEditor.Tools.current != Tool.None) + { + UnityEditor.Tools.current = Tool.None; + } + + EditorGUILayout.HelpBox("Remove this script to re-enable Transform component", MessageType.Info); + InternalEditorUtility.SetIsInspectorExpanded(target, true); + } + + private void CheckAndSetObject() + { + if (_blankParentObject == null) _blankParentObject = target as BlankParentObject; + } + } +} + +#endif diff --git a/Editor/BlankParentObjectEditor.cs.meta b/Editor/BlankParentObjectEditor.cs.meta new file mode 100644 index 0000000..b058e96 --- /dev/null +++ b/Editor/BlankParentObjectEditor.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 61feae19c726fec47b838df729ab2c98 \ No newline at end of file diff --git a/Runtime.meta b/Runtime.meta new file mode 100644 index 0000000..a1d9389 --- /dev/null +++ b/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 301a33335947903448222abbaf1a6f11 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/BlankParentObject.cs b/Runtime/BlankParentObject.cs new file mode 100644 index 0000000..0a47454 --- /dev/null +++ b/Runtime/BlankParentObject.cs @@ -0,0 +1,25 @@ +using UnityEngine; + +namespace DC.Tools +{ + [ExecuteInEditMode] + public class BlankParentObject : MonoBehaviour + { + private void Start() => ZeroTransform(); + + private void OnDestroy() + { +#if UNITY_EDITOR + transform.hideFlags = HideFlags.None; +#endif + } + + public void ZeroTransform() + { + var cachedTrans = transform; + cachedTrans.localPosition = new Vector3(0.0f, 0.0f, 0.0f); + cachedTrans.localEulerAngles = new Vector3(0.0f, 0.0f, 0.0f); + cachedTrans.localScale = new Vector3(1.0f, 1.0f, 1.0f); + } + } +} diff --git a/Runtime/BlankParentObject.cs.meta b/Runtime/BlankParentObject.cs.meta new file mode 100644 index 0000000..faf753b --- /dev/null +++ b/Runtime/BlankParentObject.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e218870a3af85ea4096508e3744df732 \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..638c6af --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "com.danielcumbor.blankparentobject", + "version": "1.0.0", + "displayName": "DC Blank Parent Object", + "description": "Creates blank gameobjects that can act as folders.", + "unity": "6000.0", + "unityRelease": "23f1", + "author": { + "name": "Daniel Cumbor", + "email": "danc@ultr.uk", + "url": "https://code.ultr.uk" + } +} \ No newline at end of file diff --git a/package.json.meta b/package.json.meta new file mode 100644 index 0000000..2a20420 --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6ab12329ce8b77a40992369c0b1f0e13 +PackageManifestImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: