Initial commit

This commit is contained in:
HussienX72u
2026-07-21 08:56:10 +03:00
commit 4017028111
9410 changed files with 2150500 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b982e746cf4d8e8489cee935daaaefc7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,37 @@
V 3.0.0
- Reworked Header build stripping. Headers are automatically excluded on build.
- Ensured Hierarchy window is refreshed after creating a header.
- General optimizations and code readability improvements.
- When creating presets, all headers in the scene are taken into account. (Thanks Frans)
V 2.1.r3
- Fixed SendMessage warning.
- Optimized Header monobehavior script.
- Improved Undo functionality.
- Ensured editor window is refreshed after each undo action.
V 2.1.r0
- Added Undo support.
- Added shortcut for opening ColoredHeaderCreator window, CTRL + H.
- Organized code for easier user modification.
- Headers will now display during Playmode (Thanks Vincent for suggestion).
- When creating a header, you can choose to use the EditorOnly tag or not (Thanks Vincent for suggestion).
- You can now create a header using the object create menu in the hierarchy. (Thanks jmhoubre for suggestion).
- Save presets are no longer hardcoded to a save location, you can choose where to save (Thanks Travis Johnson for suggestion).
V 2.0.r1
- Added assembly definitions (Thanks Glenneroo for implementation).
- Removed unused code (Thanks Glenneroo for implementation).
- Fixed "Not being able to build game" due to files being excluded (Thanks Glenneroo for implementation).
V 2.0.r0
- Updated Colored Header Creator Window UI to be more approachable.
- Updated how properties are saved on Header Game Objects (reinstall plugin if updating from 1.0.r0).
- Added a way to change existing Headers using the Inspector.
- Added Header presets. You can now save and load Headers to and from a Preset file.
- Created Headers can now be saved in the scene without having to modify the scene to trigger a save.
- Delete all Headers now delete Headers only and not the Header and its children too.
- General optimization of drawing Headers.
V 1.0.r0
- Initial Release.
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c02f3bc3e81b36242a368268f078ebe3
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,26 @@
using System;
using UnityEditor;
using UnityEngine;
namespace Plugins.Baedrick.ColoredHeaderCreator
{
public class ColoredHeader : MonoBehaviour
{
#if UNITY_EDITOR
public HeaderSettings headerSettings = new HeaderSettings();
private void OnValidate()
{
EditorApplication.delayCall += _OnValidate;
}
private void _OnValidate()
{
if (this == null) {
return;
}
EditorApplication.RepaintHierarchyWindow();
}
#endif
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e8ebc41a57a824e4ea8c1f1aa483fa7b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,16 @@
#if UNITY_EDITOR
using System.Collections.Generic;
using UnityEngine;
namespace Plugins.Baedrick.ColoredHeaderCreator
{
[System.Serializable]
[CreateAssetMenu(fileName = "New Header Preset", menuName = "Colored Header Creator/Header Preset")]
public class ColoredHeaderPreset : ScriptableObject
{
public List<HeaderSettings> coloredHeaderPreset = new List<HeaderSettings>();
}
}
#endif
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 78acf52f470b4b208edf3a39c0dfd5f2
timeCreated: 1684075039
@@ -0,0 +1,61 @@
#if UNITY_EDITOR
using UnityEngine;
namespace Plugins.Baedrick.ColoredHeaderCreator
{
public enum FontStyleOptions
{
Bold = 0,
Normal = 1,
Italic = 2,
BoldAndItalic = 3
}
public enum TextAlignmentOptions
{
Center = 0,
Left = 1,
Right = 2
}
[System.Serializable]
public class HeaderSettings
{
[Tooltip("Display text for the Header.")]
public string headerText = "New Header";
[Tooltip("Header background color.")]
public Color headerColor = Color.gray;
[Space(15)]
[Tooltip("Header text alignment.")]
public TextAlignmentOptions textAlignmentOptions = TextAlignmentOptions.Center;
[Tooltip("Header text style.")]
public FontStyleOptions fontStyleOptions = FontStyleOptions.Bold;
[Tooltip("Header text size.")]
public float fontSize = 12.0f;
[Tooltip("Header text color.")]
public Color fontColor = Color.white;
[Tooltip("Header text drop shadow. Warning it is slow.")]
public bool dropShadow = false;
}
public class ColoredHeaderSettings : ScriptableObject
{
public HeaderSettings headerSettings = new HeaderSettings();
public void ResetSettings()
{
headerSettings.headerText = "New Header";
headerSettings.headerColor = Color.gray;
headerSettings.textAlignmentOptions = TextAlignmentOptions.Center;
headerSettings.fontStyleOptions = FontStyleOptions.Bold;
headerSettings.fontSize = 12.0f;
headerSettings.fontColor = Color.white;
headerSettings.dropShadow = false;
}
}
}
#endif
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e9bd6f9e299e9b24b9524c0bb7cb3fa3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 70933c2d256ab2e418328f0052b13220
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,919 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 705507994}
m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 500
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 2
m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0
m_PVRDenoiserTypeAO: 0
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 0
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &178628777
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 178628778}
m_Layer: 0
m_Name: GameObject (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &178628778
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 178628777}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.4462943, y: 2.5588417, z: -4.903415}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &338384979
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 338384980}
m_Layer: 0
m_Name: GameObject (6)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &338384980
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 338384979}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.4462943, y: 2.5588417, z: -4.903415}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 15
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &564713524
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 564713526}
- component: {fileID: 564713525}
m_Layer: 0
m_Name: '%$ Header'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &564713525
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 564713524}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e8ebc41a57a824e4ea8c1f1aa483fa7b, type: 3}
m_Name:
m_EditorClassIdentifier:
headerSettings:
headerText: Player
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
--- !u!4 &564713526
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 564713524}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &691469880
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 691469881}
m_Layer: 0
m_Name: GameObject (5)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &691469881
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 691469880}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.4462943, y: 2.5588417, z: -4.903415}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 13
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &705507993
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 705507995}
- component: {fileID: 705507994}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &705507994
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705507993}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 1
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &705507995
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 705507993}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 10
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &735805472
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 735805474}
- component: {fileID: 735805473}
m_Layer: 0
m_Name: '%$ Header'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &735805473
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 735805472}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e8ebc41a57a824e4ea8c1f1aa483fa7b, type: 3}
m_Name:
m_EditorClassIdentifier:
headerSettings:
headerText: Spawned Prefabs
headerColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 1, g: 1, b: 1, a: 1}
dropShadow: 0
--- !u!4 &735805474
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 735805472}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 16
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &743111193
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 743111194}
m_Layer: 0
m_Name: GameObject (3)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &743111194
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 743111193}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.4462943, y: 2.5588417, z: -4.903415}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &963194225
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 963194228}
- component: {fileID: 963194227}
- component: {fileID: 963194226}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &963194226
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963194225}
m_Enabled: 1
--- !u!20 &963194227
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963194225}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &963194228
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963194225}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &997125060
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 997125062}
- component: {fileID: 997125061}
m_Layer: 0
m_Name: '%$ Header'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &997125061
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 997125060}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e8ebc41a57a824e4ea8c1f1aa483fa7b, type: 3}
m_Name:
m_EditorClassIdentifier:
headerSettings:
headerText: UI
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
--- !u!4 &997125062
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 997125060}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1011151921
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1011151923}
- component: {fileID: 1011151922}
m_Layer: 0
m_Name: '%$ Header'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1011151922
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1011151921}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e8ebc41a57a824e4ea8c1f1aa483fa7b, type: 3}
m_Name:
m_EditorClassIdentifier:
headerSettings:
headerText: Environment
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
--- !u!4 &1011151923
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1011151921}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 9
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1330086585
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1330086586}
m_Layer: 0
m_Name: GameObject (4)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1330086586
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1330086585}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.4462943, y: 2.5588417, z: -4.903415}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 11
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1425426561
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1425426563}
- component: {fileID: 1425426562}
m_Layer: 0
m_Name: '%$ Header'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1425426562
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1425426561}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e8ebc41a57a824e4ea8c1f1aa483fa7b, type: 3}
m_Name:
m_EditorClassIdentifier:
headerSettings:
headerText: System
headerColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 1, g: 1, b: 1, a: 1}
dropShadow: 0
--- !u!4 &1425426563
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1425426561}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1490800093
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1490800095}
- component: {fileID: 1490800094}
m_Layer: 0
m_Name: '%$ Header'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1490800094
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1490800093}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e8ebc41a57a824e4ea8c1f1aa483fa7b, type: 3}
m_Name:
m_EditorClassIdentifier:
headerSettings:
headerText: Cinemachine
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
--- !u!4 &1490800095
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1490800093}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1532477920
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1532477921}
m_Layer: 0
m_Name: GameObject (2)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1532477921
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1532477920}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.4462943, y: 2.5588417, z: -4.903415}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1861330985
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1861330987}
- component: {fileID: 1861330986}
m_Layer: 0
m_Name: '%$ Header'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1861330986
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1861330985}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e8ebc41a57a824e4ea8c1f1aa483fa7b, type: 3}
m_Name:
m_EditorClassIdentifier:
headerSettings:
headerText: Audio
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
--- !u!4 &1861330987
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1861330985}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 14
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1905262704
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1905262705}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1905262705
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1905262704}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.4462943, y: 2.5588417, z: -4.903415}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2116203266
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2116203268}
- component: {fileID: 2116203267}
m_Layer: 0
m_Name: '%$ Header'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &2116203267
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2116203266}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e8ebc41a57a824e4ea8c1f1aa483fa7b, type: 3}
m_Name:
m_EditorClassIdentifier:
headerSettings:
headerText: Lighting
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
--- !u!4 &2116203268
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2116203266}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 12
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c65c05fdf496864469e5aca127a89a50
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 78c26776198fda4438ab604118c84286
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,293 @@
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace Plugins.Baedrick.ColoredHeaderCreator.Editor
{
public class ColoredHeaderGUI : EditorWindow
{
private static ColoredHeaderSettings settings;
private const string PATH_TO_SETTINGS = "Assets/Plugins/Baedrick/ColoredHeaderCreator/Settings.asset";
private static Object headerPresetToLoad;
private enum Tabs
{
HeaderCreator = 0,
PresetCreator = 1
}
private static int selectedTab = 0;
private static bool headerBoxFoldout = true;
private static bool headerFontFoldout = true;
private static bool loadPresetFoldout = true;
private static bool createPresetFoldout = true;
private static class Strings
{
public const string HEADER_OBJECT_NAME = "%$ Header";
public const string WINDOW_TITLE = "Colored Headers";
public const string LOGO_TEXT = "Baedrick | ColoredHeaders";
public static readonly string[] TAB_NAMES = { "Header Creator", "Header Presets" };
public const string HEADER_SETTINGS_FOLDOUT_LABEL = "Header Settings";
public const string FONT_SETTINGS_FOLDOUT_LABEL = "Font Settings";
public const string LOAD_HEADER_FOLDOUT_LABEL = "Load Header Preset";
public const string CREATE_HEADER_FOLDOUT_LABEL = "Create Header Preset";
public const string HEADER_TITLE_LABEL = "Header Name";
public const string HEADER_TITLE_TOOLTIP = "Display text for the Header.";
public const string HEADER_COLOR_LABEL = "Header Color";
public const string HEADER_COLOR_TOOLTIP = "Header background color.";
public const string TEXT_ALIGNMENT_LABEL = "Text Alignment";
public const string TEXT_ALIGNMENT_TOOLTIP = "Header text alignment.";
public const string FONT_STYLE_LABEL = "Font Style";
public const string FONT_STYLE_TOOLTIP = "Header text font style.";
public const string FONT_SIZE_LABEL = "Font Size";
public const string FONT_SIZE_TOOLTIP = "Header text font size.";
public const string FONT_COLOR_LABEL = "Font Color";
public const string FONT_COLOR_TOOLTIP = "Header text font color.";
public const string DROP_SHADOW_LABEL = "Drop Shadow (Slow)";
public const string DROP_SHADOW_TOOLTIP = "Header text drop shadow. Warning: it is slow.";
public const string HEADER_PRESET_INPUT_LABEL = "Header Preset File";
public const string HEADER_PRESET_INPUT_TOOLTIP = "Header Preset File to load.";
public const string CREATE_HEADER_BUTTON_LABEL = "Create Header";
public const string RESET_BUTTON_LABEL = "Reset To Default";
public const string DELETE_HEADER_BUTTON_LABEL = "Delete All Headers";
public const string LOAD_PRESET_BUTTON_LABEL = "Load Headers From File";
public const string SAVE_PRESET_BUTTON_LABEL = "Save Scene Headers As Preset";
public const string SAVE_PRESET_PANEL_TITLE = "Save Colored Header Preset File";
}
[MenuItem("GameObject/Colored Header", false, 10)]
private static void CreateHeaderWithMenu(MenuCommand menuCommand)
{
var headerObject = new GameObject
{
name = Strings.HEADER_OBJECT_NAME
};
GameObjectUtility.SetParentAndAlign(headerObject, menuCommand.context as GameObject);
headerObject.AddComponent<ColoredHeader>();
Undo.RegisterCreatedObjectUndo(headerObject, "Create Header");
EditorApplication.RepaintHierarchyWindow();
}
[MenuItem("Tools/Colored Header Creator %H")]
private static void CreateWindow()
{
var window = GetWindow<ColoredHeaderGUI>(Strings.WINDOW_TITLE);
window.minSize = new Vector2(325, 390);
}
private void OnEnable()
{
if (EditorHelper.LoadSettings(PATH_TO_SETTINGS) == null) {
EditorHelper.CreateSettingsAsset(PATH_TO_SETTINGS);
}
settings = EditorHelper.LoadSettings(PATH_TO_SETTINGS);
}
private void OnDisable()
{
EditorUtility.SetDirty(settings);
}
private void OnGUI()
{
var logoRect = EditorGUILayout.GetControlRect(GUILayout.Height(50f));
var logoFont = new GUIStyle(EditorStyles.label)
{
alignment = TextAnchor.MiddleCenter,
fontSize = 20
};
if (Event.current.type == EventType.Repaint) {
logoFont.Draw(logoRect, Strings.LOGO_TEXT, false, false, false, false);
}
Undo.undoRedoPerformed += Repaint;
GUILayout.BeginHorizontal();
{
GUILayout.Space(15.0f);
EditorGUI.BeginChangeCheck();
selectedTab = GUILayout.Toolbar(selectedTab, Strings.TAB_NAMES, GUILayout.Height(26f));
if (EditorGUI.EndChangeCheck()) {
GUI.FocusControl(null);
}
GUILayout.Space(10.0f);
}
GUILayout.EndHorizontal();
switch ((Tabs)selectedTab) {
case Tabs.HeaderCreator:
DrawHeaderCreator();
break;
case Tabs.PresetCreator:
DrawPresetCreator();
break;
default:
throw new System.ArgumentOutOfRangeException();
}
}
private static void DrawHeaderCreator()
{
GUILayout.Space(8.0f);
headerBoxFoldout = EditorHelper.Foldout(headerBoxFoldout, Strings.HEADER_SETTINGS_FOLDOUT_LABEL);
if (headerBoxFoldout) {
EditorGUI.BeginChangeCheck();
var headerSettings = settings.headerSettings;
var headerTextUndo = headerSettings.headerText;
var headerColorUndo = headerSettings.headerColor;
headerTextUndo = EditorGUILayout.TextField(
new GUIContent(Strings.HEADER_TITLE_LABEL, Strings.HEADER_TITLE_TOOLTIP), headerTextUndo);
headerColorUndo = EditorGUILayout.ColorField(
new GUIContent(Strings.HEADER_COLOR_LABEL, Strings.HEADER_COLOR_TOOLTIP), headerColorUndo);
if (EditorGUI.EndChangeCheck()) {
Undo.RecordObject(settings, "Undo: Header Box Settings.");
settings.headerSettings.headerText = headerTextUndo;
settings.headerSettings.headerColor = headerColorUndo;
}
}
headerFontFoldout = EditorHelper.Foldout(headerFontFoldout, Strings.FONT_SETTINGS_FOLDOUT_LABEL);
if (headerFontFoldout) {
EditorGUI.BeginChangeCheck();
var headerSettings = settings.headerSettings;
var textAlignmentUndo = headerSettings.textAlignmentOptions;
var fontStyleUndo = headerSettings.fontStyleOptions;
var fontSizeUndo = headerSettings.fontSize;
var fontColorUndo = headerSettings.fontColor;
var dropShadowUndo = headerSettings.dropShadow;
textAlignmentUndo = (TextAlignmentOptions)EditorGUILayout.EnumPopup(
new GUIContent(Strings.TEXT_ALIGNMENT_LABEL, Strings.TEXT_ALIGNMENT_TOOLTIP), textAlignmentUndo);
fontStyleUndo = (FontStyleOptions)EditorGUILayout.EnumPopup(
new GUIContent(Strings.FONT_STYLE_LABEL, Strings.FONT_STYLE_TOOLTIP), fontStyleUndo);
fontSizeUndo = EditorGUILayout.Slider(
new GUIContent(Strings.FONT_SIZE_LABEL, Strings.FONT_SIZE_TOOLTIP), fontSizeUndo, 1, 20);
fontColorUndo = EditorGUILayout.ColorField(
new GUIContent(Strings.FONT_COLOR_LABEL, Strings.FONT_COLOR_TOOLTIP), fontColorUndo);
dropShadowUndo = EditorGUILayout.Toggle(
new GUIContent(Strings.DROP_SHADOW_LABEL, Strings.DROP_SHADOW_TOOLTIP), dropShadowUndo);
if (EditorGUI.EndChangeCheck()) {
Undo.RecordObject(settings, "Undo: Font Box Settings.");
settings.headerSettings.textAlignmentOptions = textAlignmentUndo;
settings.headerSettings.fontStyleOptions = fontStyleUndo;
settings.headerSettings.fontSize = fontSizeUndo;
settings.headerSettings.fontColor = fontColorUndo;
settings.headerSettings.dropShadow = dropShadowUndo;
}
}
GUILayout.FlexibleSpace();
if (GUILayout.Button(Strings.CREATE_HEADER_BUTTON_LABEL, GUILayout.MinHeight(50f))) {
CreateHeader(settings.headerSettings);
}
GUILayout.Space(2.0f);
if (GUILayout.Button(Strings.RESET_BUTTON_LABEL)) {
Undo.RegisterCompleteObjectUndo(settings, "Undo: Header Creator Settings Field.");
settings.ResetSettings();
}
if (GUILayout.Button(Strings.DELETE_HEADER_BUTTON_LABEL)) {
EditorHelper.DeleteAllHeaders();
}
}
private static void DrawPresetCreator()
{
loadPresetFoldout = EditorHelper.Foldout(loadPresetFoldout, Strings.LOAD_HEADER_FOLDOUT_LABEL);
if (loadPresetFoldout) {
headerPresetToLoad = EditorGUILayout.ObjectField(
new GUIContent(Strings.HEADER_PRESET_INPUT_LABEL, Strings.HEADER_PRESET_INPUT_TOOLTIP),
headerPresetToLoad, typeof(ColoredHeaderPreset), false);
if (GUILayout.Button(Strings.LOAD_PRESET_BUTTON_LABEL, GUILayout.MinHeight(30f))) {
CreateHeadersFromPreset((ColoredHeaderPreset)headerPresetToLoad);
}
}
createPresetFoldout = EditorHelper.Foldout(createPresetFoldout, Strings.CREATE_HEADER_FOLDOUT_LABEL);
if (createPresetFoldout) {
if (GUILayout.Button(Strings.SAVE_PRESET_BUTTON_LABEL, GUILayout.MinHeight(30f))) {
CreatePresetFile();
}
}
}
private static void CreateHeader(HeaderSettings headerSettings)
{
var headerObject = new GameObject
{
name = Strings.HEADER_OBJECT_NAME,
transform =
{
position = Vector3.zero,
rotation = Quaternion.identity,
localScale = Vector3.one
}
};
var headerComponentSettings = headerObject.AddComponent<ColoredHeader>().headerSettings;
EditorHelper.CopyHeaderSettingsFromTo(headerSettings, headerComponentSettings);
Undo.RegisterCreatedObjectUndo(headerObject, "Create Header");
EditorApplication.RepaintHierarchyWindow();
}
private static void CreateHeadersFromPreset(ColoredHeaderPreset presetFile)
{
if (presetFile == null) {
Debug.LogError("Invalid operation.");
return;
}
foreach (var headerSettings in presetFile.coloredHeaderPreset) {
CreateHeader(headerSettings);
}
}
private static void CreatePresetFile()
{
var path = EditorUtility.SaveFilePanelInProject(Strings.SAVE_PRESET_PANEL_TITLE, "New Header Preset", "asset", "Enter a file name.");
if (path.Length <= 0) {
Debug.LogError("Invalid operation.");
return;
}
var asset = CreateInstance<ColoredHeaderPreset>();
AssetDatabase.CreateAsset(asset, path);
AssetDatabase.SaveAssets();
var presetAsset = (ColoredHeaderPreset)EditorGUIUtility.Load(path);
presetAsset.coloredHeaderPreset.Clear();
var headerComponents = FindObjectsOfType<ColoredHeader>();
foreach (var headerComponent in headerComponents) {
var headerSettings = headerComponent.headerSettings;
var presetSettings = new HeaderSettings();
EditorHelper.CopyHeaderSettingsFromTo(headerSettings, presetSettings);
presetAsset.coloredHeaderPreset.Add(presetSettings);
EditorUtility.SetDirty(presetAsset);
}
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2bd056ead3ad9a84dbd2f80323e78ab1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,89 @@
using UnityEditor;
using UnityEngine;
namespace Plugins.Baedrick.ColoredHeaderCreator.Editor
{
[InitializeOnLoad]
public static class ColoredHeaderRenderer
{
static ColoredHeaderRenderer()
{
EditorApplication.hierarchyWindowItemOnGUI += DisplayHeader;
}
private static void DisplayHeader(int instanceID, Rect selectionRect)
{
var sceneObject = (GameObject)EditorUtility.InstanceIDToObject(instanceID);
if (sceneObject == null) {
return;
}
var headerComponent = sceneObject.GetComponent<ColoredHeader>();
if (headerComponent != null) {
RenderHeaders(headerComponent, selectionRect);
}
}
private static void RenderHeaders(ColoredHeader header, Rect selectionRect)
{
var headerSettings = header.headerSettings;
var headerText = headerSettings.headerText;
var headerColor = headerSettings.headerColor;
var textAlignment = headerSettings.textAlignmentOptions;
var fontStyle = headerSettings.fontStyleOptions;
var fontSize = headerSettings.fontSize;
var fontColor = headerSettings.fontColor;
var dropShadow = headerSettings.dropShadow;
var headerFontStyle = new GUIStyle(EditorStyles.label);
switch (textAlignment) {
case TextAlignmentOptions.Center:
headerFontStyle.alignment = TextAnchor.MiddleCenter;
break;
case TextAlignmentOptions.Left:
headerFontStyle.alignment = TextAnchor.MiddleLeft;
break;
case TextAlignmentOptions.Right:
headerFontStyle.alignment = TextAnchor.MiddleRight;
break;
default:
Debug.LogError(header.gameObject.name + " has a invalid text alignment selected.");
Selection.activeObject = header.gameObject;
return;
}
switch (fontStyle) {
case FontStyleOptions.Bold:
headerFontStyle.fontStyle = FontStyle.Bold;
break;
case FontStyleOptions.Normal:
headerFontStyle.fontStyle = FontStyle.Normal;
break;
case FontStyleOptions.Italic:
headerFontStyle.fontStyle = FontStyle.Italic;
break;
case FontStyleOptions.BoldAndItalic:
headerFontStyle.fontStyle = FontStyle.BoldAndItalic;
break;
default:
Debug.LogError(header.gameObject.name + " has a invalid font style selected.");
Selection.activeObject = header.gameObject;
return;
}
headerFontStyle.fontSize = Mathf.FloorToInt(fontSize);
headerFontStyle.normal.textColor = fontColor;
var color = new Color(headerColor.r, headerColor.g, headerColor.b, 1.0f);
if (dropShadow) {
EditorGUI.DrawRect(selectionRect, color);
EditorGUI.DropShadowLabel(selectionRect, headerText.ToUpperInvariant(), headerFontStyle);
}
else {
EditorGUI.DrawRect(selectionRect, color);
EditorGUI.LabelField(selectionRect, headerText.ToUpperInvariant(), headerFontStyle);
}
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 9bf582fe17771504ebea3ced7a9bcda1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,90 @@
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace Plugins.Baedrick.ColoredHeaderCreator.Editor
{
public static class EditorHelper
{
public static bool Foldout(bool foldout, string content)
{
var rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight, EditorStyles.foldout);
var foldoutTintColor = EditorGUIUtility.isProSkin
? new Color(1f, 1f, 1f, 0.05f)
: new Color(0f, 0f, 0f, 0.05f);
EditorGUI.DrawRect(EditorGUI.IndentedRect(rect), foldoutTintColor);
var foldoutRect = rect;
foldoutRect.width = EditorGUIUtility.singleLineHeight;
foldout = EditorGUI.Foldout(rect, foldout, "", true);
rect.x += EditorGUIUtility.singleLineHeight;
EditorGUI.LabelField(rect, content, EditorStyles.boldLabel);
return foldout;
}
public static ColoredHeaderSettings LoadSettings(string path)
{
var settingsObject = (ColoredHeaderSettings)EditorGUIUtility.Load(path);
if (settingsObject != null) {
return settingsObject;
}
var guids = AssetDatabase.FindAssets("t:" + nameof(ColoredHeaderSettings));
if (guids.Length > 0) {
return AssetDatabase.LoadAssetAtPath<ColoredHeaderSettings>(AssetDatabase.GUIDToAssetPath(guids[0]));
}
return null;
}
public static void CreateSettingsAsset(string path)
{
var settingsObject = ScriptableObject.CreateInstance<ColoredHeaderSettings>();
AssetDatabase.CreateAsset(settingsObject, path);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
public static void CopyHeaderSettingsFromTo(HeaderSettings from, HeaderSettings to)
{
to.headerText = from.headerText;
to.headerColor = from.headerColor;
to.textAlignmentOptions = from.textAlignmentOptions;
to.fontStyleOptions = from.fontStyleOptions;
to.fontSize = from.fontSize;
to.fontColor = from.fontColor;
to.dropShadow = from.dropShadow;
}
public static void DeleteAllHeaders()
{
var headerComponents = Object.FindObjectsOfType<ColoredHeader>();
foreach (var headerComponent in headerComponents) {
if (headerComponent.transform.parent == null) {
headerComponent.transform.DetachChildren();
Undo.DestroyObjectImmediate(headerComponent.gameObject);
continue;
}
if (headerComponent.transform.parent != null && headerComponent.transform.childCount > 0) {
var parent = headerComponent.transform.parent;
var children = new List<Transform>();
for (var i = 0; i < headerComponent.transform.childCount; ++i) {
children.Add(headerComponent.transform.GetChild(i));
}
headerComponent.transform.DetachChildren();
foreach (var child in children) {
child.parent = parent;
}
Undo.DestroyObjectImmediate(headerComponent.gameObject);
continue;
}
Undo.DestroyObjectImmediate(headerComponent.gameObject);
}
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 888e8f7eb9e64e2f9c7b45e21251ecd9
timeCreated: 1683991255
@@ -0,0 +1,18 @@
using UnityEditor;
using UnityEditor.Callbacks;
namespace Plugins.Baedrick.ColoredHeaderCreator.Editor
{
public static class OnPreprocessScene
{
[PostProcessScene]
private static void OnPostProcessScene()
{
if (EditorApplication.isPlaying) {
return;
}
EditorHelper.DeleteAllHeaders();
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 71ed8346dd00e7b44994b5781ce2a6a7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,18 @@
{
"name": "Plugins.Baedrick.ColoredHeaderCreator.Editor",
"rootNamespace": "",
"references": [
"GUID:9da6497914269f54c8fa247ce173f4a5"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 456b5f74cc1b2fc4981e3d34528b6963
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,14 @@
{
"name": "Plugins.Baedrick.ColoredHeaderCreator",
"rootNamespace": "",
"references": [],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9da6497914269f54c8fa247ce173f4a5
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9b69dc1ac6c5ebd4ba7f8511cac9fd3d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,71 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 78acf52f470b4b208edf3a39c0dfd5f2, type: 3}
m_Name: Default Header Preset
m_EditorClassIdentifier:
coloredHeaderPreset:
- headerText: System
headerColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 1, g: 1, b: 1, a: 1}
dropShadow: 0
- headerText: UI
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
- headerText: Cinemachine
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
- headerText: Player
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
- headerText: Environment
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
- headerText: Lighting
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
- headerText: Audio
headerColor: {r: 0.33333334, g: 0.73333335, b: 0.6901961, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 0, g: 0, b: 0, a: 1}
dropShadow: 0
- headerText: Spawned Prefabs
headerColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1}
textAlignmentOptions: 1
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 1, g: 1, b: 1, a: 1}
dropShadow: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 31a699ca6be72de4aae2b1da8cfe954e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+16
View File
@@ -0,0 +1,16 @@
Created by Dedrick "Baedrick" Koh
To add headers/dividers go to Tools > Colored Header Creator
Alternatively, Hierarchy Window > Right Click Menu > Colored Header
Contact: https://baedrick.carrd.co/
Any issues please report in an email to dedrickkoh1@gmail.com
In the email please state what were the steps you took to encounter the error. Screenshots are encouraged.
Special Thanks:
- Glenneroo
- Vincent
- Travis Johnson
- jmhoubre
- Frans
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f554960e27c0f1b4196b4c52e44ddeba
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e9bd6f9e299e9b24b9524c0bb7cb3fa3, type: 3}
m_Name: Settings
m_EditorClassIdentifier:
headerSettings:
headerText: New Header
headerColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
textAlignmentOptions: 0
fontStyleOptions: 0
fontSize: 12
fontColor: {r: 1, g: 1, b: 1, a: 1}
dropShadow: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5765462a534868145b0e9a283f525881
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant: