diff --git a/Assets/Prefabs/PrefabBrowserDB.asset b/Assets/Prefabs/PrefabBrowserDB.asset new file mode 100644 index 000000000..ed92f8140 --- /dev/null +++ b/Assets/Prefabs/PrefabBrowserDB.asset @@ -0,0 +1,47 @@ +%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: f046b28826899834f925498b5f90bf2d, type: 3} + m_Name: PrefabBrowserDB + m_EditorClassIdentifier: + groups: + - groupName: Trees + groupColor: {r: 0.38679248, g: 0.1085675, b: 0, a: 1} + useLightText: 1 + prefabs: [] + - groupName: Stones + groupColor: {r: 0.2924528, g: 0, b: 0, a: 1} + useLightText: 1 + prefabs: + - {fileID: 3729385275159174759, guid: b83a40fdffe995c4d8c7ba482fb4b2b8, type: 3} + - {fileID: 6550434966018730688, guid: 3ef32dcb7e900c245b48572d43b140b4, type: 3} + - {fileID: 2959732555524133462, guid: 4f8faff92d8e4ed48a9066ebcbb0c713, type: 3} + - {fileID: 8279010982994336710, guid: 63c806cd13577c540912cd97173b4e42, type: 3} + - {fileID: 1953575432603607144, guid: b64493b656965604b9e7eb94f190ee24, type: 3} + - {fileID: 6259510873288837657, guid: b7dfcff84cbf1254fb32b287ec9e8ea7, type: 3} + - {fileID: 8501429591298181761, guid: c42346a06a7af8c4f9befe3fd4fa24e9, type: 3} + - {fileID: 5285407229512777518, guid: 7b8645300baedc6428d90bcb18db3a06, type: 3} + - groupName: Brushes + groupColor: {r: 0.3584906, g: 0.06858081, b: 0, a: 1} + useLightText: 1 + prefabs: [] + - groupName: Destructable + groupColor: {r: 0.5377358, g: 0, b: 0, a: 1} + useLightText: 1 + prefabs: [] + - groupName: New Group + groupColor: {r: 0.3, g: 0.3, b: 0.3, a: 1} + useLightText: 1 + prefabs: [] + - groupName: New Group + groupColor: {r: 0.3, g: 0.3, b: 0.3, a: 1} + useLightText: 1 + prefabs: [] diff --git a/Assets/Prefabs/PrefabBrowserDB.asset.meta b/Assets/Prefabs/PrefabBrowserDB.asset.meta new file mode 100644 index 000000000..b5610944d --- /dev/null +++ b/Assets/Prefabs/PrefabBrowserDB.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d8a956128c0de73449591ca4eefeb612 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/02_Ruined_Town/Ruined_Town.unity b/Assets/Scenes/02_Ruined_Town/Ruined_Town.unity index d1449841b..87d8de761 100644 --- a/Assets/Scenes/02_Ruined_Town/Ruined_Town.unity +++ b/Assets/Scenes/02_Ruined_Town/Ruined_Town.unity @@ -5306,7 +5306,7 @@ PrefabInstance: type: 3} propertyPath: m_Mesh value: - objectReference: {fileID: 138678894} + objectReference: {fileID: 1652919104} - target: {fileID: 2614899761469592910, guid: 03dbe1927cbadab49b452a55e1ba5ca0, type: 3} propertyPath: m_Name @@ -19874,171 +19874,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 138438844} m_PrefabAsset: {fileID: 0} ---- !u!43 &138678894 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: FluidContainer - serializedVersion: 11 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 36 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 24 - localAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 10, z: 9} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 1 - m_KeepVertices: 0 - m_KeepIndices: 0 - m_IndexFormat: 1 - m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 24 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 24 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 768 - _typelessdata: 000020c1000020c100001041000000800000803f000000800000803f0000803f00002041000020c100001041000000800000803f00000080000000000000803f00002041000020c1000010c1000000800000803f000000800000000000000000000020c1000020c1000010c1000000800000803f000000800000803f00000000000020c100002041000010c10000803f00000080000000800000803f0000803f000020c100002041000010410000803f0000008000000080000000000000803f000020c1000020c1000010410000803f00000080000000800000000000000000000020c1000020c1000010c10000803f00000080000000800000803f00000000000020c100002041000010410000008000000080000080bf0000803f0000803f0000204100002041000010410000008000000080000080bf000000000000803f00002041000020c1000010410000008000000080000080bf0000000000000000000020c1000020c1000010410000008000000080000080bf0000803f000000000000204100002041000010c100000080000000800000803f0000803f0000803f000020c100002041000010c100000080000000800000803f000000000000803f000020c1000020c1000010c100000080000000800000803f000000000000000000002041000020c1000010c100000080000000800000803f0000803f00000000000020410000204100001041000080bf00000080000000800000803f0000803f0000204100002041000010c1000080bf0000008000000080000000000000803f00002041000020c1000010c1000080bf0000008000000080000000000000000000002041000020c100001041000080bf00000080000000800000803f00000000000020c100002041000010c100000080000080bf000000800000803f0000803f0000204100002041000010c100000080000080bf00000080000000000000803f00002041000020410000104100000080000080bf000000800000000000000000000020c1000020410000104100000080000080bf000000800000803f00000000 - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 10, z: 9} - m_MeshUsageFlags: 0 - m_CookingOptions: 30 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - 'm_MeshMetrics[0]': 1 - 'm_MeshMetrics[1]': 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: --- !u!1001 &138949244 PrefabInstance: m_ObjectHideFlags: 0 @@ -35746,6 +35581,70 @@ MonoBehaviour: _disableOnStart: 0 _useDistanceFade: 0 _fadeRange: 5 +--- !u!21 &253987670 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Override + m_Shader: {fileID: 4800000, guid: a3a3bc8785681554d9558e2ea68f100e, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: [] + m_Ints: [] + m_Floats: + - _DIRECTIONALL: 1 + - _DirectionalFalloff: 2 + - _DirectionalIntensity: 1 + - _DirectionalMode: 1 + - _FOGG: 1 + - _FogAxisMode: 1 + - _FogColorDuo: 1 + - _FogDistanceEnd: 200 + - _FogDistanceFalloff: 2 + - _FogDistanceStart: -200 + - _FogHeightEnd: 200 + - _FogHeightFalloff: 2 + - _FogHeightStart: 0 + - _FogIntensity: 1 + - _FogLayersMode: 0 + - _IsHeightFogPreset: 1 + - _IsHeightFogShader: 1 + - _IsStandardPipeline: 0 + - _NOISEE: 1 + - _NoiseDistanceEnd: 50 + - _NoiseIntensity: 1 + - _NoiseMode: 2 + - _NoiseModeBlend: 1 + - _NoiseScale: 30 + - _SKYBOXX: 1 + - _SkyboxFogFalloff: 1 + - _SkyboxFogFill: 1 + - _SkyboxFogHeight: 1 + - _SkyboxFogIntensity: 1 + - _TITLE: 1 + m_Colors: + - _DirectionalColor: {r: 1, g: 0.7793103, b: 0.5, a: 1} + - _DirectionalDir: {r: 0, g: 0, b: 0, a: 0} + - _FogAxisOption: {r: 0, g: 0, b: 0, a: 0} + - _FogColorEnd: {r: 0.8862745, g: 1.443137, b: 2, a: 1} + - _FogColorStart: {r: 0.4411765, g: 0.722515, b: 1, a: 1} + - _NoiseSpeed: {r: 0.5, g: 0, b: 0.5, a: 0} + m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!1001 &254647914 PrefabInstance: m_ObjectHideFlags: 0 @@ -48949,171 +48848,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 365125939} m_PrefabAsset: {fileID: 0} ---- !u!43 &365636194 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: FluidContainer - serializedVersion: 11 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 36 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 24 - localAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 9.72, z: 13.65} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 1 - m_KeepVertices: 0 - m_KeepIndices: 0 - m_IndexFormat: 1 - m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 24 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 24 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 768 - _typelessdata: 000020c11f851bc166665a41000000800000803f000000800000803f0000803f000020411f851bc166665a41000000800000803f00000080000000000000803f000020411f851bc166665ac1000000800000803f000000800000000000000000000020c11f851bc166665ac1000000800000803f000000800000803f00000000000020c11f851b4166665ac10000803f00000080000000800000803f0000803f000020c11f851b4166665a410000803f0000008000000080000000000000803f000020c11f851bc166665a410000803f00000080000000800000000000000000000020c11f851bc166665ac10000803f00000080000000800000803f00000000000020c11f851b4166665a410000008000000080000080bf0000803f0000803f000020411f851b4166665a410000008000000080000080bf000000000000803f000020411f851bc166665a410000008000000080000080bf0000000000000000000020c11f851bc166665a410000008000000080000080bf0000803f00000000000020411f851b4166665ac100000080000000800000803f0000803f0000803f000020c11f851b4166665ac100000080000000800000803f000000000000803f000020c11f851bc166665ac100000080000000800000803f0000000000000000000020411f851bc166665ac100000080000000800000803f0000803f00000000000020411f851b4166665a41000080bf00000080000000800000803f0000803f000020411f851b4166665ac1000080bf0000008000000080000000000000803f000020411f851bc166665ac1000080bf00000080000000800000000000000000000020411f851bc166665a41000080bf00000080000000800000803f00000000000020c11f851b4166665ac100000080000080bf000000800000803f0000803f000020411f851b4166665ac100000080000080bf00000080000000000000803f000020411f851b4166665a4100000080000080bf000000800000000000000000000020c11f851b4166665a4100000080000080bf000000800000803f00000000 - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 9.72, z: 13.65} - m_MeshUsageFlags: 0 - m_CookingOptions: 30 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - 'm_MeshMetrics[0]': 1 - 'm_MeshMetrics[1]': 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: --- !u!4 &365838182 stripped Transform: m_CorrespondingSourceObject: {fileID: 4283788935881206155, guid: 9ec7b44ed3172f04d9b12c5394ae2b39, @@ -61793,6 +61527,37 @@ Transform: m_Children: [] m_Father: {fileID: 84217938} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &450515344 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 450515345} + m_Layer: 0 + m_Name: '= Clean ' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &450515345 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 450515344} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 61.69375, y: 36.134, z: -222.74866} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &450649938 stripped Transform: m_CorrespondingSourceObject: {fileID: 6785242412794091529, guid: 919f4c6c61ceb094fb62ea8a2b6e44ba, @@ -92692,171 +92457,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 610313797} m_PrefabAsset: {fileID: 0} ---- !u!43 &611007473 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: FluidContainer - serializedVersion: 11 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 36 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 24 - localAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 10, z: 9} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 1 - m_KeepVertices: 0 - m_KeepIndices: 0 - m_IndexFormat: 1 - m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 24 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 24 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 768 - _typelessdata: 000020c1000020c100001041000000800000803f000000800000803f0000803f00002041000020c100001041000000800000803f00000080000000000000803f00002041000020c1000010c1000000800000803f000000800000000000000000000020c1000020c1000010c1000000800000803f000000800000803f00000000000020c100002041000010c10000803f00000080000000800000803f0000803f000020c100002041000010410000803f0000008000000080000000000000803f000020c1000020c1000010410000803f00000080000000800000000000000000000020c1000020c1000010c10000803f00000080000000800000803f00000000000020c100002041000010410000008000000080000080bf0000803f0000803f0000204100002041000010410000008000000080000080bf000000000000803f00002041000020c1000010410000008000000080000080bf0000000000000000000020c1000020c1000010410000008000000080000080bf0000803f000000000000204100002041000010c100000080000000800000803f0000803f0000803f000020c100002041000010c100000080000000800000803f000000000000803f000020c1000020c1000010c100000080000000800000803f000000000000000000002041000020c1000010c100000080000000800000803f0000803f00000000000020410000204100001041000080bf00000080000000800000803f0000803f0000204100002041000010c1000080bf0000008000000080000000000000803f00002041000020c1000010c1000080bf0000008000000080000000000000000000002041000020c100001041000080bf00000080000000800000803f00000000000020c100002041000010c100000080000080bf000000800000803f0000803f0000204100002041000010c100000080000080bf00000080000000000000803f00002041000020410000104100000080000080bf000000800000000000000000000020c1000020410000104100000080000080bf000000800000803f00000000 - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 10, z: 9} - m_MeshUsageFlags: 0 - m_CookingOptions: 30 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - 'm_MeshMetrics[0]': 1 - 'm_MeshMetrics[1]': 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: --- !u!1001 &611184144 PrefabInstance: m_ObjectHideFlags: 0 @@ -122106,37 +121706,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 780288720} m_PrefabAsset: {fileID: 0} ---- !u!1 &782184310 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 782184311} - m_Layer: 0 - m_Name: '= Clean ' - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &782184311 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 782184310} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 61.69375, y: 36.134, z: -222.74866} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &782526214 stripped Transform: m_CorrespondingSourceObject: {fileID: 465168, guid: dd107c9554dccd0469f14f91c92b1a2c, @@ -123366,6 +122935,171 @@ Transform: type: 3} m_PrefabInstance: {fileID: 791567355} m_PrefabAsset: {fileID: 0} +--- !u!43 &791755172 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FluidContainer + serializedVersion: 11 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 9.72, z: 13.65} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 0 + m_KeepIndices: 0 + m_IndexFormat: 1 + m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 24 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 768 + _typelessdata: 000020c11f851bc166665a41000000800000803f000000800000803f0000803f000020411f851bc166665a41000000800000803f00000080000000000000803f000020411f851bc166665ac1000000800000803f000000800000000000000000000020c11f851bc166665ac1000000800000803f000000800000803f00000000000020c11f851b4166665ac10000803f00000080000000800000803f0000803f000020c11f851b4166665a410000803f0000008000000080000000000000803f000020c11f851bc166665a410000803f00000080000000800000000000000000000020c11f851bc166665ac10000803f00000080000000800000803f00000000000020c11f851b4166665a410000008000000080000080bf0000803f0000803f000020411f851b4166665a410000008000000080000080bf000000000000803f000020411f851bc166665a410000008000000080000080bf0000000000000000000020c11f851bc166665a410000008000000080000080bf0000803f00000000000020411f851b4166665ac100000080000000800000803f0000803f0000803f000020c11f851b4166665ac100000080000000800000803f000000000000803f000020c11f851bc166665ac100000080000000800000803f0000000000000000000020411f851bc166665ac100000080000000800000803f0000803f00000000000020411f851b4166665a41000080bf00000080000000800000803f0000803f000020411f851b4166665ac1000080bf0000008000000080000000000000803f000020411f851bc166665ac1000080bf00000080000000800000000000000000000020411f851bc166665a41000080bf00000080000000800000803f00000000000020c11f851b4166665ac100000080000080bf000000800000803f0000803f000020411f851b4166665ac100000080000080bf00000080000000000000803f000020411f851b4166665a4100000080000080bf000000800000000000000000000020c11f851b4166665a4100000080000080bf000000800000803f00000000 + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 9.72, z: 13.65} + m_MeshUsageFlags: 0 + m_CookingOptions: 30 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + 'm_MeshMetrics[0]': 1 + 'm_MeshMetrics[1]': 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: --- !u!1001 &791988278 PrefabInstance: m_ObjectHideFlags: 0 @@ -150625,42 +150359,42 @@ PrefabInstance: - target: {fileID: 564995907207171390, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 564995907207171390, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 564995907207171390, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 210 objectReference: {fileID: 0} - target: {fileID: 564995907207171390, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -135 objectReference: {fileID: 0} - target: {fileID: 616128472424357225, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 616128472424357225, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 616128472424357225, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 210.00003 objectReference: {fileID: 0} - target: {fileID: 616128472424357225, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -45 objectReference: {fileID: 0} - target: {fileID: 763034042805173548, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -151471,22 +151205,22 @@ PrefabInstance: - target: {fileID: 4202610206940879906, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4202610206940879906, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4202610206940879906, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 210 objectReference: {fileID: 0} - target: {fileID: 4202610206940879906, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -225 objectReference: {fileID: 0} - target: {fileID: 4310148345887150382, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -151586,22 +151320,22 @@ PrefabInstance: - target: {fileID: 4796023216948086302, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4796023216948086302, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4796023216948086302, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 210 objectReference: {fileID: 0} - target: {fileID: 4796023216948086302, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -315 objectReference: {fileID: 0} - target: {fileID: 4907318199456855652, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -152886,22 +152620,22 @@ PrefabInstance: - target: {fileID: 7465903852046106667, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMax.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7465903852046106667, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMin.y - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7465903852046106667, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 210 objectReference: {fileID: 0} - target: {fileID: 7465903852046106667, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -405 objectReference: {fileID: 0} - target: {fileID: 7534046934194550914, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -155797,39 +155531,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1611932751} m_PrefabAsset: {fileID: 0} ---- !u!21 &1024824050 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Height Fog Global - m_Shader: {fileID: 4800000, guid: 3a7ef1b66bafb7a448a880ef76d2e6e6, type: 3} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3002 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: [] - m_Ints: [] - m_Floats: - - _HeightFogGlobal: 1 - - _IsHeightFogShader: 1 - - _IsStandardPipeline: 0 - - _TITLE: 1 - - _TransparentQueue: 3000 - m_Colors: [] - m_BuildTextureStacks: [] - m_AllowLocking: 1 --- !u!1 &1024981843 GameObject: m_ObjectHideFlags: 0 @@ -224379,70 +224080,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1588475738} m_PrefabAsset: {fileID: 0} ---- !u!21 &1589206157 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Override - m_Shader: {fileID: 4800000, guid: a3a3bc8785681554d9558e2ea68f100e, type: 3} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: [] - m_Ints: [] - m_Floats: - - _DIRECTIONALL: 1 - - _DirectionalFalloff: 2 - - _DirectionalIntensity: 1 - - _DirectionalMode: 1 - - _FOGG: 1 - - _FogAxisMode: 1 - - _FogColorDuo: 1 - - _FogDistanceEnd: 200 - - _FogDistanceFalloff: 2 - - _FogDistanceStart: -200 - - _FogHeightEnd: 200 - - _FogHeightFalloff: 2 - - _FogHeightStart: 0 - - _FogIntensity: 1 - - _FogLayersMode: 0 - - _IsHeightFogPreset: 1 - - _IsHeightFogShader: 1 - - _IsStandardPipeline: 0 - - _NOISEE: 1 - - _NoiseDistanceEnd: 50 - - _NoiseIntensity: 1 - - _NoiseMode: 2 - - _NoiseModeBlend: 1 - - _NoiseScale: 30 - - _SKYBOXX: 1 - - _SkyboxFogFalloff: 1 - - _SkyboxFogFill: 1 - - _SkyboxFogHeight: 1 - - _SkyboxFogIntensity: 1 - - _TITLE: 1 - m_Colors: - - _DirectionalColor: {r: 1, g: 0.7793103, b: 0.5, a: 1} - - _DirectionalDir: {r: 0, g: 0, b: 0, a: 0} - - _FogAxisOption: {r: 0, g: 0, b: 0, a: 0} - - _FogColorEnd: {r: 0.8862745, g: 1.443137, b: 2, a: 1} - - _FogColorStart: {r: 0.4411765, g: 0.722515, b: 1, a: 1} - - _NoiseSpeed: {r: 0.5, g: 0, b: 0.5, a: 0} - m_BuildTextureStacks: [] - m_AllowLocking: 1 --- !u!1 &1589275643 GameObject: m_ObjectHideFlags: 0 @@ -232321,6 +231958,171 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1652905887} m_PrefabAsset: {fileID: 0} +--- !u!43 &1652919104 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FluidContainer + serializedVersion: 11 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 10, z: 9} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 0 + m_KeepIndices: 0 + m_IndexFormat: 1 + m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 24 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 768 + _typelessdata: 000020c1000020c100001041000000800000803f000000800000803f0000803f00002041000020c100001041000000800000803f00000080000000000000803f00002041000020c1000010c1000000800000803f000000800000000000000000000020c1000020c1000010c1000000800000803f000000800000803f00000000000020c100002041000010c10000803f00000080000000800000803f0000803f000020c100002041000010410000803f0000008000000080000000000000803f000020c1000020c1000010410000803f00000080000000800000000000000000000020c1000020c1000010c10000803f00000080000000800000803f00000000000020c100002041000010410000008000000080000080bf0000803f0000803f0000204100002041000010410000008000000080000080bf000000000000803f00002041000020c1000010410000008000000080000080bf0000000000000000000020c1000020c1000010410000008000000080000080bf0000803f000000000000204100002041000010c100000080000000800000803f0000803f0000803f000020c100002041000010c100000080000000800000803f000000000000803f000020c1000020c1000010c100000080000000800000803f000000000000000000002041000020c1000010c100000080000000800000803f0000803f00000000000020410000204100001041000080bf00000080000000800000803f0000803f0000204100002041000010c1000080bf0000008000000080000000000000803f00002041000020c1000010c1000080bf0000008000000080000000000000000000002041000020c100001041000080bf00000080000000800000803f00000000000020c100002041000010c100000080000080bf000000800000803f0000803f0000204100002041000010c100000080000080bf00000080000000000000803f00002041000020410000104100000080000080bf000000800000000000000000000020c1000020410000104100000080000080bf000000800000803f00000000 + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 10, z: 9} + m_MeshUsageFlags: 0 + m_CookingOptions: 30 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + 'm_MeshMetrics[0]': 1 + 'm_MeshMetrics[1]': 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: --- !u!1001 &1652933643 PrefabInstance: m_ObjectHideFlags: 0 @@ -236106,6 +235908,39 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: cca74970622327a489f2273db8862c0e, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!21 &1666583422 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Height Fog Global + m_Shader: {fileID: 4800000, guid: 3a7ef1b66bafb7a448a880ef76d2e6e6, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3002 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: [] + m_Ints: [] + m_Floats: + - _HeightFogGlobal: 1 + - _IsHeightFogShader: 1 + - _IsStandardPipeline: 0 + - _TITLE: 1 + - _TransparentQueue: 3000 + m_Colors: [] + m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!4 &1667631343 stripped Transform: m_CorrespondingSourceObject: {fileID: 441198, guid: d8f8b708eb440ce4da5b77fb4f0d8e4c, @@ -307874,7 +307709,7 @@ PrefabInstance: type: 3} propertyPath: m_Mesh value: - objectReference: {fileID: 1933501176} + objectReference: {fileID: 791755172} - target: {fileID: 2614899761469592910, guid: 03dbe1927cbadab49b452a55e1ba5ca0, type: 3} propertyPath: m_Name @@ -326182,171 +326017,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 783952764} m_PrefabAsset: {fileID: 0} ---- !u!43 &1933501176 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: FluidContainer - serializedVersion: 11 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 36 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 24 - localAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 9.72, z: 13.65} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 1 - m_KeepVertices: 0 - m_KeepIndices: 0 - m_IndexFormat: 1 - m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 24 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 24 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 768 - _typelessdata: 000020c11f851bc166665a41000000800000803f000000800000803f0000803f000020411f851bc166665a41000000800000803f00000080000000000000803f000020411f851bc166665ac1000000800000803f000000800000000000000000000020c11f851bc166665ac1000000800000803f000000800000803f00000000000020c11f851b4166665ac10000803f00000080000000800000803f0000803f000020c11f851b4166665a410000803f0000008000000080000000000000803f000020c11f851bc166665a410000803f00000080000000800000000000000000000020c11f851bc166665ac10000803f00000080000000800000803f00000000000020c11f851b4166665a410000008000000080000080bf0000803f0000803f000020411f851b4166665a410000008000000080000080bf000000000000803f000020411f851bc166665a410000008000000080000080bf0000000000000000000020c11f851bc166665a410000008000000080000080bf0000803f00000000000020411f851b4166665ac100000080000000800000803f0000803f0000803f000020c11f851b4166665ac100000080000000800000803f000000000000803f000020c11f851bc166665ac100000080000000800000803f0000000000000000000020411f851bc166665ac100000080000000800000803f0000803f00000000000020411f851b4166665a41000080bf00000080000000800000803f0000803f000020411f851b4166665ac1000080bf0000008000000080000000000000803f000020411f851bc166665ac1000080bf00000080000000800000000000000000000020411f851bc166665a41000080bf00000080000000800000803f00000000000020c11f851b4166665ac100000080000080bf000000800000803f0000803f000020411f851b4166665ac100000080000080bf00000080000000000000803f000020411f851b4166665a4100000080000080bf000000800000000000000000000020c11f851b4166665a4100000080000080bf000000800000803f00000000 - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 9.72, z: 13.65} - m_MeshUsageFlags: 0 - m_CookingOptions: 30 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - 'm_MeshMetrics[0]': 1 - 'm_MeshMetrics[1]': 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: --- !u!1 &1935479581 GameObject: m_ObjectHideFlags: 0 @@ -429378,7 +429048,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 1024824050} + - {fileID: 1666583422} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -429471,7 +429141,7 @@ MonoBehaviour: manualPositionAndScale: 0 renderPriority: 2 styledSpace0: 0 - overrideMaterial: {fileID: 1589206157} + overrideMaterial: {fileID: 253987670} overrideCamToVolumeDistance: Infinity overrideVolumeDistanceFade: 0 version: 180 @@ -447327,6 +446997,7 @@ SceneRoots: - {fileID: 830642059} - {fileID: 46529370} - {fileID: 796152178} + - {fileID: 450515345} - {fileID: 1917659686} - {fileID: 307720468} - {fileID: 159055581} @@ -447337,4 +447008,3 @@ SceneRoots: - {fileID: 1848253884} - {fileID: 2003764685} - {fileID: 1479116614} - - {fileID: 782184311} diff --git a/Assets/Scripts/Editor/CustomHierarchyDecorator.cs b/Assets/Scripts/Editor/CustomHierarchyDecorator.cs index f15c3de2e..fc7a61461 100644 --- a/Assets/Scripts/Editor/CustomHierarchyDecorator.cs +++ b/Assets/Scripts/Editor/CustomHierarchyDecorator.cs @@ -64,9 +64,9 @@ public static class CustomHierarchyDecorator // Funkcja rysująca niestandardowy nagłówek private static void DrawCustomHeader(Rect rect, GameObject obj) { - if (obj.name.Trim() == "= Clean") + if (obj.name.Trim().StartsWith("= Clean")) // <-- ZMIANA TUTAJ { - // Jeśli jest "Clean", rysujemy tylko tło + // Jeśli nazwa zaczyna się od "Clean", rysujemy tylko tło EditorGUI.DrawRect(rect, settings.cleanBackgroundColor); return; } @@ -144,7 +144,7 @@ public static class CustomHierarchyDecorator EditorApplication.delayCall += () => { GameObject[] cleanSeparators = Object.FindObjectsByType(FindObjectsInactive.Include, FindObjectsSortMode.None) - .Where(obj => obj.name.Trim() == "= Clean") + .Where(obj => obj.name.Trim().StartsWith("= Clean")) // <-- ZMIANA TUTAJ .ToArray(); foreach (var cleanObj in cleanSeparators) diff --git a/Assets/Scripts/Editor/HeaderCreatorWindow.cs b/Assets/Scripts/Editor/HeaderCreatorWindow.cs new file mode 100644 index 000000000..0bfbb0247 --- /dev/null +++ b/Assets/Scripts/Editor/HeaderCreatorWindow.cs @@ -0,0 +1,190 @@ +using UnityEditor; +using UnityEngine; +using System.Linq; +using System.Collections.Generic; + +public class HeaderCreatorWindow : EditorWindow +{ + private string objectName = "New GameObject"; + private string headerDescription = ""; + private int selectedIdentifier = 1; + + private static HierarchyDecoratorSettings settings; + private Vector2 scrollPosition; + private Dictionary colorStyles; + + [MenuItem("GameObject/Create Custom Header", false, 0)] + [MenuItem("GameObject/Create Empty", false, 0)] + public static void ShowWindow() + { + HeaderCreatorWindow window = GetWindow(true, "Create Object"); + // ZMIANA: Zwiększamy minimalną wysokość okna, aby zmieścił się nowy przycisk + window.minSize = new Vector2(320, 340); + } + + private void OnEnable() + { + settings = AssetDatabase.LoadAssetAtPath("Assets/Scripts/Editor/HierarchyDecoratorSettings.asset"); + + if (settings == null) + { + Debug.LogError("HierarchyDecoratorSettings not found!"); + Close(); + return; + } + + if (settings.colorSchemes.Count > 0) + { + selectedIdentifier = settings.colorSchemes.First().identifier; + InitializeButtonStyles(); + } + } + + private void OnGUI() + { + if (settings == null) return; + + EditorGUILayout.LabelField("Create a new object", EditorStyles.boldLabel); + objectName = EditorGUILayout.TextField("Name", objectName); + + EditorGUILayout.Space(10); + + EditorGUILayout.LabelField("For Custom Header:", EditorStyles.miniBoldLabel); + headerDescription = EditorGUILayout.TextField("Description (Optional)", headerDescription); + + if (settings.colorSchemes.Count == 0) + { + EditorGUILayout.HelpBox("No color schemes defined in HierarchyDecoratorSettings. You can only create a simple empty object.", MessageType.Warning); + } + else + { + EditorGUILayout.LabelField("Color Scheme", EditorStyles.boldLabel); + DrawColorSelectionGrid(); + } + + EditorGUILayout.Space(); + + GUI.enabled = settings.colorSchemes.Count > 0; + if (GUILayout.Button("Create Custom Header", GUILayout.Height(35))) + { + CreateHeaderObject(); + Close(); + } + GUI.enabled = true; + + EditorGUILayout.Space(5); + + if (GUILayout.Button("Create Simple Empty (using Name only)", GUILayout.Height(30))) + { + CreateSimpleEmptyObject(); + Close(); + } + + // ZMIANA: Dodajemy nowy przycisk do tworzenia separatora "= Clean" + EditorGUILayout.Space(10); // Dodajemy trochę więcej miejsca + + // Ustawiamy inny kolor tła dla tego specjalnego przycisku, aby się wyróżniał + GUI.backgroundColor = new Color(0.4f, 0.4f, 0.45f); + + if (GUILayout.Button("Create Clean Separator", GUILayout.Height(30))) + { + CreateCleanSeparator(); + Close(); + } + + // WAŻNE: Resetujemy kolor tła do domyślnego, aby nie wpływał na inne elementy GUI + GUI.backgroundColor = Color.white; + } + + private void DrawColorSelectionGrid() + { + scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition, GUILayout.Height(80)); + int columns = 5; + int buttonsInRow = 0; + + GUILayout.BeginHorizontal(); + foreach (var scheme in settings.colorSchemes) + { + GUIStyle buttonStyle = colorStyles[scheme.identifier]; + string buttonText = scheme.identifier.ToString(); + + if (GUILayout.Button(buttonText, buttonStyle, GUILayout.MinWidth(40), GUILayout.Height(30))) + { + selectedIdentifier = scheme.identifier; + } + + if (Event.current.type == EventType.Repaint && scheme.identifier == selectedIdentifier) + { + Rect buttonRect = GUILayoutUtility.GetLastRect(); + EditorGUI.DrawRect(buttonRect, new Color(0.5f, 0.5f, 0.5f, 0.4f)); + } + + buttonsInRow++; + if (buttonsInRow >= columns) + { + GUILayout.EndHorizontal(); + GUILayout.BeginHorizontal(); + buttonsInRow = 0; + } + } + GUILayout.EndHorizontal(); + EditorGUILayout.EndScrollView(); + } + + private void CreateHeaderObject() + { + string finalName = $"{selectedIdentifier}={objectName.Trim()}"; + if (!string.IsNullOrEmpty(headerDescription.Trim())) + { + finalName += $"={headerDescription.Trim()}"; + } + GameObject header = new GameObject(finalName); + Undo.RegisterCreatedObjectUndo(header, "Create Custom Header"); + GameObjectUtility.SetParentAndAlign(header, Selection.activeObject as GameObject); + Selection.activeObject = header; + } + + private void CreateSimpleEmptyObject() + { + GameObject emptyObj = new GameObject(objectName); + Undo.RegisterCreatedObjectUndo(emptyObj, "Create Simple Empty Object"); + GameObjectUtility.SetParentAndAlign(emptyObj, Selection.activeObject as GameObject); + Selection.activeObject = emptyObj; + } + + // ZMIANA: Nowa funkcja do tworzenia separatora "= Clean" + private void CreateCleanSeparator() + { + // Nazwa jest stała i nie zależy od pól w oknie + GameObject cleanSeparator = new GameObject("= Clean"); + Undo.RegisterCreatedObjectUndo(cleanSeparator, "Create Clean Separator"); + GameObjectUtility.SetParentAndAlign(cleanSeparator, Selection.activeObject as GameObject); + Selection.activeObject = cleanSeparator; + } + + private void InitializeButtonStyles() + { + colorStyles = new Dictionary(); + foreach (var scheme in settings.colorSchemes) + { + GUIStyle style = new GUIStyle(EditorStyles.miniButton); + Texture2D backgroundTexture = MakeTex(1, 1, scheme.activeBackgroundColor); + style.normal.background = backgroundTexture; + style.active.background = backgroundTexture; + style.normal.textColor = scheme.activeTextColor; + style.alignment = TextAnchor.MiddleCenter; + style.fontStyle = FontStyle.Bold; + colorStyles.Add(scheme.identifier, style); + } + } + + private Texture2D MakeTex(int width, int height, Color col) + { + Color[] pix = new Color[width * height]; + for (int i = 0; i < pix.Length; ++i) pix[i] = col; + Texture2D result = new Texture2D(width, height); + result.SetPixels(pix); + result.Apply(); + return result; + } +} \ No newline at end of file diff --git a/Assets/Scripts/Editor/HeaderCreatorWindow.cs.meta b/Assets/Scripts/Editor/HeaderCreatorWindow.cs.meta new file mode 100644 index 000000000..d7906499f --- /dev/null +++ b/Assets/Scripts/Editor/HeaderCreatorWindow.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5113ff53def7bbb4a9b1c0d790d0809e \ No newline at end of file diff --git a/Assets/Scripts/Editor/PrefabBrowserDatabase.cs b/Assets/Scripts/Editor/PrefabBrowserDatabase.cs new file mode 100644 index 000000000..7fd637b4f --- /dev/null +++ b/Assets/Scripts/Editor/PrefabBrowserDatabase.cs @@ -0,0 +1,17 @@ +using UnityEngine; +using System.Collections.Generic; + +[System.Serializable] +public class PrefabGroup +{ + public string groupName; + public Color groupColor = new Color(0.3f, 0.3f, 0.3f, 1f); + public bool useLightText = true; + public List prefabs = new List(); +} + +[CreateAssetMenu(fileName = "PrefabBrowserDB", menuName = "Tools/Prefab Browser Database")] +public class PrefabBrowserDatabase : ScriptableObject +{ + public List groups = new List(); +} \ No newline at end of file diff --git a/Assets/Scripts/Editor/PrefabBrowserDatabase.cs.meta b/Assets/Scripts/Editor/PrefabBrowserDatabase.cs.meta new file mode 100644 index 000000000..0592c22af --- /dev/null +++ b/Assets/Scripts/Editor/PrefabBrowserDatabase.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f046b28826899834f925498b5f90bf2d \ No newline at end of file diff --git a/Assets/Scripts/Editor/PrefabBrowserWindow.cs b/Assets/Scripts/Editor/PrefabBrowserWindow.cs new file mode 100644 index 000000000..379d3c37f --- /dev/null +++ b/Assets/Scripts/Editor/PrefabBrowserWindow.cs @@ -0,0 +1,352 @@ +using UnityEditor; +using UnityEngine; +using System.Linq; +using System.Collections.Generic; + +public class PrefabBrowserWindow : EditorWindow +{ + private PrefabBrowserDatabase database; + private int selectedGroupIndex = -1; + private string newGroupName = "New Group"; + private Vector2 leftPaneScroll; + private Vector2 rightPaneScroll; + private GUIStyle frameStyle; + + private float iconSize = 80f; + private string searchFilter = ""; + private const float ListViewThreshold = 61f; + + private GameObject selectedPrefab = null; + + private void OnEnable() + { + LoadDatabase(); + iconSize = EditorPrefs.GetFloat("PrefabBrowser_IconSize", 80f); + } + + private void OnFocus() + { + LoadDatabase(); + Repaint(); + } + + [MenuItem("Tools/Prefab Browser")] + public static void ShowWindow() + { + GetWindow("Prefab Browser"); + } + + private void LoadDatabase() + { + string[] guids = AssetDatabase.FindAssets("t:PrefabBrowserDatabase"); + if (guids.Length > 0) + { + string path = AssetDatabase.GUIDToAssetPath(guids[0]); + database = AssetDatabase.LoadAssetAtPath(path); + } + else + { + database = null; + } + } + + private void OnGUI() + { + if (database == null) + { + EditorGUILayout.HelpBox("Prefab Browser Database not found. Please create one via:\nAssets -> Create -> Tools -> Prefab Browser Database", MessageType.Warning); + if (GUILayout.Button("Try to Reload Database")) LoadDatabase(); + return; + } + + if (frameStyle == null) + { + frameStyle = new GUIStyle(GUI.skin.box); + frameStyle.margin = new RectOffset(4, 4, 0, 5); + frameStyle.padding = new RectOffset(2, 2, 2, 2); + } + + EditorGUILayout.BeginHorizontal(); + DrawLeftPane(); + DrawRightPane(); + EditorGUILayout.EndHorizontal(); + } + + private void DrawLeftPane() + { + EditorGUILayout.BeginVertical(GUI.skin.box, GUILayout.Width(200), GUILayout.ExpandHeight(true)); + EditorGUILayout.LabelField("Prefab Groups", EditorStyles.boldLabel); + leftPaneScroll = EditorGUILayout.BeginScrollView(leftPaneScroll); + + if (database.groups != null) + { + for (int i = 0; i < database.groups.Count; i++) + { + var group = database.groups[i]; + + EditorGUILayout.BeginVertical(frameStyle); + { + Color rowBackgroundColor = (i == selectedGroupIndex) ? new Color(0.24f, 0.48f, 0.85f) : group.groupColor; + Color textColor = (i == selectedGroupIndex) ? Color.white : (group.useLightText ? Color.white : Color.black); + + Rect coloredBarRect = GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.Height(22)); + EditorGUI.DrawRect(coloredBarRect, rowBackgroundColor); + + GUIStyle labelStyle = new GUIStyle(EditorStyles.label) { normal = { textColor = textColor } }; + labelStyle.fontStyle = FontStyle.Bold; + labelStyle.padding.left = 5; + GUI.Label(new Rect(coloredBarRect.x, coloredBarRect.y, coloredBarRect.width - 25, coloredBarRect.height), group.groupName, labelStyle); + + Rect settingsIconRect = new Rect(coloredBarRect.x + coloredBarRect.width - 22, coloredBarRect.y + 2, 18, 18); + GUI.DrawTexture(settingsIconRect, EditorGUIUtility.IconContent("d_Settings").image); + + Event currentEvent = Event.current; + if (currentEvent.type == EventType.MouseDown && currentEvent.button == 0) + { + if (settingsIconRect.Contains(currentEvent.mousePosition)) + { + PrefabGroupSettingsWindow.ShowAsDropDown(settingsIconRect, group, database); + currentEvent.Use(); + } + else if (coloredBarRect.Contains(currentEvent.mousePosition)) + { + if (selectedGroupIndex != i) + { + selectedPrefab = null; + } + selectedGroupIndex = i; + Repaint(); + currentEvent.Use(); + } + } + } + EditorGUILayout.EndVertical(); + } + } + + EditorGUILayout.EndScrollView(); + EditorGUILayout.Space(); + EditorGUILayout.LabelField("Create New Group:", EditorStyles.miniBoldLabel); + newGroupName = EditorGUILayout.TextField(newGroupName); + if (GUILayout.Button("Add Group") && !string.IsNullOrWhiteSpace(newGroupName)) + { + database.groups.Add(new PrefabGroup { groupName = newGroupName }); + newGroupName = "New Group"; + EditorUtility.SetDirty(database); + AssetDatabase.SaveAssets(); + } + EditorGUILayout.EndVertical(); + } + + private void DrawRightPane() + { + EditorGUILayout.BeginVertical(GUI.skin.box, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)); + + if (selectedGroupIndex < 0 || database.groups == null || selectedGroupIndex >= database.groups.Count) + { + EditorGUILayout.LabelField("Select a group from the left panel.", EditorStyles.centeredGreyMiniLabel); + EditorGUILayout.EndVertical(); + return; + } + + var selectedGroup = database.groups[selectedGroupIndex]; + + Color headerBgColor = selectedGroup.groupColor; + Color headerTextColor = selectedGroup.useLightText ? Color.white : Color.black; + GUIStyle headerStyle = new GUIStyle(EditorStyles.boldLabel) { alignment = TextAnchor.MiddleCenter, padding = new RectOffset(5, 5, 5, 5) }; + Texture2D headerBgTexture = new Texture2D(1, 1); + headerBgTexture.SetPixel(0, 0, headerBgColor); + headerBgTexture.Apply(); + headerStyle.normal.background = headerBgTexture; + headerStyle.normal.textColor = headerTextColor; + GUILayout.Label($"Prefabs in '{selectedGroup.groupName}'", headerStyle, GUILayout.ExpandWidth(true)); + + EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); + searchFilter = EditorGUILayout.TextField(searchFilter, EditorStyles.toolbarSearchField); + if (GUILayout.Button("X", EditorStyles.toolbarButton, GUILayout.Width(22))) + { + searchFilter = ""; + GUI.FocusControl(null); + } + EditorGUILayout.EndHorizontal(); + + rightPaneScroll = EditorGUILayout.BeginScrollView(rightPaneScroll); + + var filteredPrefabs = selectedGroup.prefabs.Where(p => p != null && + (string.IsNullOrWhiteSpace(searchFilter) || p.name.ToLowerInvariant().Contains(searchFilter.ToLowerInvariant())) + ).ToList(); + + if (iconSize < ListViewThreshold) + { + foreach (var prefab in filteredPrefabs) + { + DrawPrefabListItem(prefab, selectedGroup); + } + } + else + { + float cellWidth = iconSize + 20; + int gridCols = Mathf.Max(1, Mathf.FloorToInt((position.width - 220) / cellWidth)); + + if (filteredPrefabs.Count > 0) + { + for (int i = 0; i < filteredPrefabs.Count; i += gridCols) + { + EditorGUILayout.BeginHorizontal(); + for (int j = 0; j < gridCols; j++) + { + if (i + j < filteredPrefabs.Count) + { + DrawPrefabIcon(filteredPrefabs[i + j], selectedGroup, iconSize); + } + else GUILayout.Space(cellWidth); + } + GUILayout.FlexibleSpace(); + EditorGUILayout.EndHorizontal(); + } + } + } + + EditorGUILayout.EndScrollView(); + DrawBottomControls(); + EditorGUILayout.EndVertical(); + } + + private void DrawBottomControls() + { + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + float newIconSize = GUILayout.HorizontalSlider(iconSize, 60f, 120f, GUILayout.Width(150)); + if (newIconSize != iconSize) + { + iconSize = newIconSize; + EditorPrefs.SetFloat("PrefabBrowser_IconSize", iconSize); + } + EditorGUILayout.EndHorizontal(); + + Rect dropArea = GUILayoutUtility.GetRect(0.0f, 50.0f, GUILayout.ExpandWidth(true)); + GUI.Box(dropArea, "Drag & Drop Prefabs Here"); + HandleDragAndDrop(dropArea); + } + + // --- NOWA FUNKCJA POMOCNICZA: Rysuje ramkę wokół prostokąta --- + private void DrawSelectionFrame(Rect rect, Color color, int thickness) + { + // Rysujemy 4 prostokąty (góra, dół, lewo, prawo), aby stworzyć ramkę + // Używamy białej tekstury i zabarwiamy ją na pożądany kolor - to standardowa i wydajna technika w edytorze. + Texture2D texture = EditorGUIUtility.whiteTexture; + GUI.color = color; + GUI.DrawTexture(new Rect(rect.x, rect.y, rect.width, thickness), texture); // Góra + GUI.DrawTexture(new Rect(rect.x, rect.yMax - thickness, rect.width, thickness), texture); // Dół + GUI.DrawTexture(new Rect(rect.x, rect.y, thickness, rect.height), texture); // Lewo + GUI.DrawTexture(new Rect(rect.xMax - thickness, rect.y, thickness, rect.height), texture); // Prawo + GUI.color = Color.white; // Resetujemy kolor do domyślnego + } + + private void DrawPrefabListItem(GameObject prefab, PrefabGroup group) + { + EditorGUILayout.BeginHorizontal(GUI.skin.box); + + Texture icon = AssetPreview.GetMiniThumbnail(prefab); + GUILayout.Label(icon, GUILayout.Width(20), GUILayout.Height(20)); + EditorGUILayout.LabelField(prefab.name); + GUILayout.FlexibleSpace(); + if (GUILayout.Button("Remove", GUILayout.Width(60))) + { + group.prefabs.Remove(prefab); + EditorUtility.SetDirty(database); + } + + EditorGUILayout.EndHorizontal(); + Rect itemRect = GUILayoutUtility.GetLastRect(); + + // --- ZMIANA: Rysujemy ramkę zamiast półprzezroczystego tła --- + if (selectedPrefab == prefab) + { + DrawSelectionFrame(itemRect, new Color(0.24f, 0.48f, 0.85f, 1f), 1); // Cieńsza ramka dla listy + } + + Event currentEvent = Event.current; + // Rozdzielamy logikę: kliknięcie zaznacza, przeciąganie rozpoczyna się, gdy mysz jest wciśnięta i się rusza + if (itemRect.Contains(currentEvent.mousePosition)) + { + if (currentEvent.type == EventType.MouseDown && currentEvent.button == 0) + { + selectedPrefab = prefab; + Repaint(); + currentEvent.Use(); + } + if (currentEvent.type == EventType.MouseDrag && currentEvent.button == 0 && selectedPrefab == prefab) + { + DragAndDrop.PrepareStartDrag(); + DragAndDrop.objectReferences = new Object[] { prefab }; + DragAndDrop.StartDrag(prefab.name); + currentEvent.Use(); + } + } + } + + private void DrawPrefabIcon(GameObject prefab, PrefabGroup group, float currentIconSize) + { + if (prefab == null) return; + float cellWidth = currentIconSize + 20; + EditorGUILayout.BeginVertical(GUILayout.Width(cellWidth)); + Texture2D preview = AssetPreview.GetAssetPreview(prefab) ?? AssetPreview.GetMiniTypeThumbnail(typeof(GameObject)); + + Rect previewRect = GUILayoutUtility.GetRect(currentIconSize, currentIconSize); + GUI.Box(previewRect, preview); + + // --- ZMIANA: Rysujemy ramkę zamiast półprzezroczystego tła --- + if (selectedPrefab == prefab) + { + DrawSelectionFrame(previewRect, new Color(0.24f, 0.48f, 0.85f, 1f), 2); // Grubsza ramka dla siatki + } + + Event currentEvent = Event.current; + // Rozdzielamy logikę: kliknięcie zaznacza, przeciąganie rozpoczyna się, gdy mysz jest wciśnięta i się rusza + if (previewRect.Contains(currentEvent.mousePosition)) + { + if (currentEvent.type == EventType.MouseDown && currentEvent.button == 0) + { + selectedPrefab = prefab; + Repaint(); + currentEvent.Use(); + } + if (currentEvent.type == EventType.MouseDrag && currentEvent.button == 0 && selectedPrefab == prefab) + { + DragAndDrop.PrepareStartDrag(); + DragAndDrop.objectReferences = new Object[] { prefab }; + DragAndDrop.StartDrag(prefab.name); + currentEvent.Use(); + } + } + + EditorGUILayout.LabelField(prefab.name, EditorStyles.miniLabel, GUILayout.Width(currentIconSize)); + if (GUILayout.Button("Remove", EditorStyles.miniButton)) + { + group.prefabs.Remove(prefab); + EditorUtility.SetDirty(database); + } + EditorGUILayout.EndVertical(); + } + + private void HandleDragAndDrop(Rect dropArea) + { + Event currentEvent = Event.current; + if (currentEvent.type != EventType.DragUpdated && currentEvent.type != EventType.DragPerform) return; + if (!dropArea.Contains(currentEvent.mousePosition)) return; + + DragAndDrop.visualMode = DragAndDropVisualMode.Copy; + if (currentEvent.type == EventType.DragPerform) + { + DragAndDrop.AcceptDrag(); + var selectedPrefabs = DragAndDrop.objectReferences + .OfType() + .Where(go => PrefabUtility.IsPartOfPrefabAsset(go) && !database.groups[selectedGroupIndex].prefabs.Contains(go)); + + database.groups[selectedGroupIndex].prefabs.AddRange(selectedPrefabs); + EditorUtility.SetDirty(database); + } + currentEvent.Use(); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Editor/PrefabBrowserWindow.cs.meta b/Assets/Scripts/Editor/PrefabBrowserWindow.cs.meta new file mode 100644 index 000000000..1b3ee4d15 --- /dev/null +++ b/Assets/Scripts/Editor/PrefabBrowserWindow.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 37b40567119369f4f9f57bbe0875c495 \ No newline at end of file diff --git a/Assets/Scripts/Editor/PrefabGroupSettingsWindow.cs b/Assets/Scripts/Editor/PrefabGroupSettingsWindow.cs new file mode 100644 index 000000000..2d1b5fa6a --- /dev/null +++ b/Assets/Scripts/Editor/PrefabGroupSettingsWindow.cs @@ -0,0 +1,89 @@ +using UnityEditor; +using UnityEngine; + +public class PrefabGroupSettingsWindow : EditorWindow +{ + private PrefabGroup targetGroup; + private PrefabBrowserDatabase database; + + private string tempGroupName; + private Color tempGroupColor; + private bool tempUseLightText; + + // NOWA METODA: Tworzy okno jako elegancki dropdown pod przyciskiem. + public static void ShowAsDropDown(Rect buttonRect, PrefabGroup groupToEdit, PrefabBrowserDatabase db) + { + PrefabGroupSettingsWindow window = CreateInstance(); + + // Ustawiamy docelową grupę dla tej konkretnej instancji okna + window.SetTarget(groupToEdit, db); + + // Ustawiamy rozmiar naszego dropdownu + Vector2 windowSize = new Vector2(250, 150); + window.position = new Rect(buttonRect.x, buttonRect.yMax, 0, 0); // Pozycja początkowa + + // Wyświetlamy okno + window.ShowAsDropDown(buttonRect, windowSize); + } + + // Metoda, która inicjalizuje dane dla tego konkretnego okna. + private void SetTarget(PrefabGroup group, PrefabBrowserDatabase db) + { + targetGroup = group; + database = db; + + if (targetGroup != null) + { + tempGroupName = targetGroup.groupName; + tempGroupColor = targetGroup.groupColor; + tempUseLightText = targetGroup.useLightText; + } + } + + private void OnGUI() + { + if (targetGroup == null) + { + Close(); + return; + } + + // Dodajemy trochę marginesu, żeby kontrolki nie były przyklejone do krawędzi + EditorGUILayout.BeginVertical(new GUIStyle { padding = new RectOffset(10, 10, 10, 10) }); + + EditorGUILayout.LabelField("Edit Group", EditorStyles.boldLabel); + EditorGUILayout.Space(5); + + tempGroupName = EditorGUILayout.TextField("Group Name", tempGroupName); + tempGroupColor = EditorGUILayout.ColorField("Group Color", tempGroupColor); + tempUseLightText = EditorGUILayout.Toggle("Use Light Text", tempUseLightText); + + EditorGUILayout.Space(10); + EditorGUILayout.BeginHorizontal(); + + if (GUILayout.Button("Save")) + { + targetGroup.groupName = tempGroupName; + targetGroup.groupColor = tempGroupColor; + targetGroup.useLightText = tempUseLightText; + + EditorUtility.SetDirty(database); + AssetDatabase.SaveAssets(); + + Close(); + } + + if (GUILayout.Button("Delete")) + { + if (EditorUtility.DisplayDialog("Delete Group", $"Are you sure you want to permanently delete the group '{targetGroup.groupName}'?", "Yes, Delete", "Cancel")) + { + database.groups.Remove(targetGroup); + EditorUtility.SetDirty(database); + AssetDatabase.SaveAssets(); + Close(); + } + } + EditorGUILayout.EndHorizontal(); + EditorGUILayout.EndVertical(); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Editor/PrefabGroupSettingsWindow.cs.meta b/Assets/Scripts/Editor/PrefabGroupSettingsWindow.cs.meta new file mode 100644 index 000000000..e05bcea21 --- /dev/null +++ b/Assets/Scripts/Editor/PrefabGroupSettingsWindow.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8bf24d05fa260d44a9c319d6bd7cc730 \ No newline at end of file diff --git a/Assets/ThirdParty/FluXY/Resources/Materials/Splat.mat b/Assets/ThirdParty/FluXY/Resources/Materials/Splat.mat index fd9bcbb81..3375fde88 100644 --- a/Assets/ThirdParty/FluXY/Resources/Materials/Splat.mat +++ b/Assets/ThirdParty/FluXY/Resources/Materials/Splat.mat @@ -65,11 +65,11 @@ Material: m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: - - _BlendOp: 2 + - _BlendOp: 0 - _BumpScale: 1 - _Cutoff: 0.5 - _DetailNormalMapScale: 1 - - _DstBlend: 10 + - _DstBlend: 1 - _GlossMapScale: 1 - _Glossiness: 0.5 - _GlossyReflections: 1