From fae301dd2deb50ac453063706eeb08320d263b47 Mon Sep 17 00:00:00 2001 From: Vladimir Koshevarov Date: Wed, 8 Feb 2023 19:38:05 +0200 Subject: [PATCH] add grid manager --- .../{Scenes/CityOutside.meta => !_Packs.meta} | 2 +- .../GridBuildingSystem.unitypackage.meta | 7 + Assets/Materials/Floor.mat | 83 +++ Assets/Materials/Floor.mat.meta | 8 + Assets/Prefabs/BuildingVisual.prefab | 312 ++++++++++ Assets/Prefabs/BuildingVisual.prefab.meta | 7 + Assets/Prefabs/button.prefab | 14 +- Assets/Scenes/GridBuildingSystem.unity | 541 ++++++++++++++++++ Assets/Scenes/GridBuildingSystem.unity.meta | 7 + Assets/Scenes/TestPoly.unity | 141 +---- Assets/Scripts/GridBuildingSystem.meta | 8 + .../GridBuildingSystem/GridBuildingSystem.cs | 33 ++ .../GridBuildingSystem.cs.meta | 11 + .../Scripts/GridBuildingSystem/GridObject.cs | 41 ++ .../GridBuildingSystem/GridObject.cs.meta | 11 + Assets/Scripts/GridBuildingSystem/GridXZ.cs | 145 +++++ .../Scripts/GridBuildingSystem/GridXZ.cs.meta | 11 + Assets/Scripts/GridBuildingSystem/Mouse3d.cs | 33 ++ .../GridBuildingSystem/Mouse3d.cs.meta | 11 + Packages/manifest.json | 13 +- Packages/packages-lock.json | 64 +-- .../com.unity.probuilder/Settings.json | 2 - .../Settings.json | 2 - ProjectSettings/ProjectVersion.txt | 4 +- ProjectSettings/TagManager.asset | 2 +- ProjectSettings/boot.config | 0 26 files changed, 1312 insertions(+), 201 deletions(-) rename Assets/{Scenes/CityOutside.meta => !_Packs.meta} (77%) create mode 100644 Assets/!_Packs/GridBuildingSystem.unitypackage.meta create mode 100644 Assets/Materials/Floor.mat create mode 100644 Assets/Materials/Floor.mat.meta create mode 100644 Assets/Prefabs/BuildingVisual.prefab create mode 100644 Assets/Prefabs/BuildingVisual.prefab.meta create mode 100644 Assets/Scenes/GridBuildingSystem.unity create mode 100644 Assets/Scenes/GridBuildingSystem.unity.meta create mode 100644 Assets/Scripts/GridBuildingSystem.meta create mode 100644 Assets/Scripts/GridBuildingSystem/GridBuildingSystem.cs create mode 100644 Assets/Scripts/GridBuildingSystem/GridBuildingSystem.cs.meta create mode 100644 Assets/Scripts/GridBuildingSystem/GridObject.cs create mode 100644 Assets/Scripts/GridBuildingSystem/GridObject.cs.meta create mode 100644 Assets/Scripts/GridBuildingSystem/GridXZ.cs create mode 100644 Assets/Scripts/GridBuildingSystem/GridXZ.cs.meta create mode 100644 Assets/Scripts/GridBuildingSystem/Mouse3d.cs create mode 100644 Assets/Scripts/GridBuildingSystem/Mouse3d.cs.meta delete mode 100644 ProjectSettings/boot.config diff --git a/Assets/Scenes/CityOutside.meta b/Assets/!_Packs.meta similarity index 77% rename from Assets/Scenes/CityOutside.meta rename to Assets/!_Packs.meta index 7588f463..4eb0bddf 100644 --- a/Assets/Scenes/CityOutside.meta +++ b/Assets/!_Packs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f3fff55c4d7d08f4595e2235bdfd8eda +guid: 00f323649a4852a4db855ebfcacbd652 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/!_Packs/GridBuildingSystem.unitypackage.meta b/Assets/!_Packs/GridBuildingSystem.unitypackage.meta new file mode 100644 index 00000000..ef5f771a --- /dev/null +++ b/Assets/!_Packs/GridBuildingSystem.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 23bf172e1c8c3a74cbd9b53d0db6e582 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Materials/Floor.mat b/Assets/Materials/Floor.mat new file mode 100644 index 00000000..2959b396 --- /dev/null +++ b/Assets/Materials/Floor.mat @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Floor + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + 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: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.31132078, g: 0.27460843, b: 0.27460843, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Materials/Floor.mat.meta b/Assets/Materials/Floor.mat.meta new file mode 100644 index 00000000..b34fe1ab --- /dev/null +++ b/Assets/Materials/Floor.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ff86ef5e0127257478394f0659ca1b26 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/BuildingVisual.prefab b/Assets/Prefabs/BuildingVisual.prefab new file mode 100644 index 00000000..d8909891 --- /dev/null +++ b/Assets/Prefabs/BuildingVisual.prefab @@ -0,0 +1,312 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3975429431264860849 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3975429431264860850} + m_Layer: 0 + m_Name: BuildingVisual + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3975429431264860850 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3975429431264860849} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3975429431331459137} + - {fileID: 3975429432045736839} + - {fileID: 3975429431334981912} + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3975429431331459136 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3975429431331459137} + - component: {fileID: 3975429431331459140} + - component: {fileID: 3975429431331459139} + - component: {fileID: 3975429431331459138} + m_Layer: 0 + m_Name: Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3975429431331459137 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3975429431331459136} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5, y: 0, z: 5} + m_LocalScale: {x: 10, y: 1, z: 10} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3975429431264860850} + m_RootOrder: -1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3975429431331459140 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3975429431331459136} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3975429431331459139 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3975429431331459136} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &3975429431331459138 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3975429431331459136} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &3975429431334981911 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3975429431334981912} + - component: {fileID: 3975429431334981915} + - component: {fileID: 3975429431334981914} + - component: {fileID: 3975429431334981913} + m_Layer: 0 + m_Name: Ancor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3975429431334981912 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3975429431334981911} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3975429431264860850} + m_RootOrder: -1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3975429431334981915 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3975429431334981911} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3975429431334981914 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3975429431334981911} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &3975429431334981913 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3975429431334981911} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &3975429432046140771 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3975429431264860850} + m_Modifications: + - target: {fileID: 165386, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_Name + value: Building + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_RootOrder + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_LocalPosition.x + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_LocalPosition.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_LocalPosition.z + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} +--- !u!4 &3975429432045736839 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 405220, guid: 9384e4f7925dd0d47a003b910f826bf8, type: 3} + m_PrefabInstance: {fileID: 3975429432046140771} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/BuildingVisual.prefab.meta b/Assets/Prefabs/BuildingVisual.prefab.meta new file mode 100644 index 00000000..69ee6291 --- /dev/null +++ b/Assets/Prefabs/BuildingVisual.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5db9332b939cebc4dbb0d1b962fa1292 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/button.prefab b/Assets/Prefabs/button.prefab index 4847c33a..53018cb4 100644 --- a/Assets/Prefabs/button.prefab +++ b/Assets/Prefabs/button.prefab @@ -190,7 +190,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: -42.48101, y: 0} + m_AnchoredPosition: {x: 21.18, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3806516703338386379 @@ -335,10 +335,10 @@ RectTransform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.791, y: 0.11000001} - m_AnchorMax: {x: 0.96800005, y: 0.24948958} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0.791, y: 0.19664745} + m_AnchorMax: {x: 0.82527876, y: 0.24948958} + m_AnchoredPosition: {x: 0.17080688, y: 0.33007812} + m_SizeDelta: {x: 0.3415985, y: -0.6603012} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &3806516704876462311 MonoBehaviour: @@ -403,8 +403,8 @@ MonoBehaviour: m_Bottom: 0 m_ChildAlignment: 0 m_Spacing: 0 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 1 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 m_ChildControlWidth: 0 m_ChildControlHeight: 0 m_ChildScaleWidth: 0 diff --git a/Assets/Scenes/GridBuildingSystem.unity b/Assets/Scenes/GridBuildingSystem.unity new file mode 100644 index 00000000..24ee7f63 --- /dev/null +++ b/Assets/Scenes/GridBuildingSystem.unity @@ -0,0 +1,541 @@ +%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: 0} + m_IndirectSpecularColor: {r: 0.44657826, g: 0.49641263, b: 0.57481676, 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: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + 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: 3 + 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 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &1013133448 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1013133452} + - component: {fileID: 1013133451} + - component: {fileID: 1013133450} + - component: {fileID: 1013133449} + m_Layer: 0 + m_Name: FloorVisual + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1013133449 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013133448} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1013133450 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013133448} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ff86ef5e0127257478394f0659ca1b26, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1013133451 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013133448} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1013133452 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013133448} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 25, y: 0, z: 25} + m_LocalScale: {x: 5, y: 5, z: 5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1341265025} + m_RootOrder: -1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1208506639 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1208506641} + - component: {fileID: 1208506640} + m_Layer: 3 + m_Name: GridBuildingSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1208506640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1208506639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a18076dea00d39a4d8242bb7d35b4c61, type: 3} + m_Name: + m_EditorClassIdentifier: + _testTransform: {fileID: 3975429431264860850, guid: 5db9332b939cebc4dbb0d1b962fa1292, type: 3} +--- !u!4 &1208506641 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1208506639} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1269573993 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1269573995} + - component: {fileID: 1269573994} + 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 &1269573994 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269573993} + 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: 4 + 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 &1269573995 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269573993} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1275839455 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1275839456} + - component: {fileID: 1275839457} + m_Layer: 3 + m_Name: Mouse3D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1275839456 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1275839455} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1275839457 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1275839455} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 22e20f55292258c479f3c37c0806694d, type: 3} + m_Name: + m_EditorClassIdentifier: + _mouseColliderLayerMask: + serializedVersion: 2 + m_Bits: 8 +--- !u!1 &1341265024 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1341265025} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1341265025 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1341265024} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1013133452} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1379968052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1379968055} + - component: {fileID: 1379968054} + - component: {fileID: 1379968053} + 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 &1379968053 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1379968052} + m_Enabled: 1 +--- !u!20 &1379968054 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1379968052} + 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_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + 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 &1379968055 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1379968052} + m_LocalRotation: {x: 0.32410425, y: -0, z: -0, w: 0.9460214} + m_LocalPosition: {x: 23.44, y: 18.53, z: -9.98} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 37.823, y: 0, z: 0} diff --git a/Assets/Scenes/GridBuildingSystem.unity.meta b/Assets/Scenes/GridBuildingSystem.unity.meta new file mode 100644 index 00000000..252676ac --- /dev/null +++ b/Assets/Scenes/GridBuildingSystem.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bafb907989d723d4c8410b4d2330c272 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/TestPoly.unity b/Assets/Scenes/TestPoly.unity index b6d3885e..b53be52b 100644 --- a/Assets/Scenes/TestPoly.unity +++ b/Assets/Scenes/TestPoly.unity @@ -262,9 +262,9 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 1826.2748, y: -322.1232} + m_AnchoredPosition: {x: -223.47546, y: 347.80328} m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 1.451873, y: 0.17039108} + m_Pivot: {x: 0.7826086, y: 1.4650838} --- !u!114 &3676872 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2054,44 +2054,6 @@ MonoBehaviour: _sunLight: {fileID: 705507994} _sunriseHour: 7 _sunsetHour: 20.5 - _dayAmbientLight: {r: 0.56078434, g: 0.6039216, b: 0.68235296, a: 0} - _nightAmbientLight: {r: 0.15686275, g: 0.3137255, b: 0.39215687, a: 0} - _lightChangeCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 2 - outSlope: 2 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - - serializedVersion: 3 - time: 0.12441538 - value: 0.85143906 - inSlope: 0.6203075 - outSlope: 0.6203075 - tangentMode: 0 - weightedMode: 3 - inWeight: 1 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0 - outWeight: 0 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - _maxSunLightIntensity: 1 - _moonLight: {fileID: 448269317} - _maxMoonLightIntensity: 0.5 _minuteToRealTime: 0.01 --- !u!4 &307039700 Transform: @@ -2882,100 +2844,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 443940494} m_CullTransparentMesh: 1 ---- !u!1 &448269316 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 448269318} - - component: {fileID: 448269317} - m_Layer: 0 - m_Name: MoonLight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &448269317 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 448269316} - m_Enabled: 0 - serializedVersion: 10 - m_Type: 1 - m_Shape: 0 - m_Color: {r: 0.32941177, g: 0.84705883, b: 0.8784314, a: 1} - m_Intensity: 0.01 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - 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: 4 - 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 &448269318 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 448269316} - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: -223.0188, y: -581.07855, z: 8.663528} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1504187455} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} --- !u!1 &451637041 GameObject: m_ObjectHideFlags: 0 @@ -4828,12 +4696,12 @@ Light: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 705507993} - m_Enabled: 0 + 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.2 + m_Intensity: 1 m_Range: 10 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 @@ -15640,7 +15508,6 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 705507995} - - {fileID: 448269318} m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Scripts/GridBuildingSystem.meta b/Assets/Scripts/GridBuildingSystem.meta new file mode 100644 index 00000000..83ff7468 --- /dev/null +++ b/Assets/Scripts/GridBuildingSystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ad524142fef4ea41af294d55fb4c340 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GridBuildingSystem/GridBuildingSystem.cs b/Assets/Scripts/GridBuildingSystem/GridBuildingSystem.cs new file mode 100644 index 00000000..3f121bcd --- /dev/null +++ b/Assets/Scripts/GridBuildingSystem/GridBuildingSystem.cs @@ -0,0 +1,33 @@ +using UnityEngine; + +public class GridBuildingSystem : MonoBehaviour +{ + [SerializeField] private Transform _testTransform; + private GridXZ _grid; + private void Awake() + { + int gridWidth = 10; + int gridHeight = 10; + float cellSize = 10f; + + _grid = new GridXZ(gridWidth, gridHeight, cellSize, Vector3.zero, (GridXZ g, int x, int z) => new GridObject(g, x, z)); + } + + private void Update() + { + if (Input.GetMouseButtonDown(0)) + { + _grid.GetXZ(Mouse3d.GetMouseWorldPosition(), out int x, out int z); + var gridObject = _grid.GetGridObject(x, z); + if (gridObject.CanPlace()) + { + var transform = Instantiate(_testTransform, _grid.GetWorldPosition(x, z), Quaternion.identity); + gridObject.SetTransform(transform); + } + else + { + Debug.Log("Can't place item here !!!"); + } + } + } +} diff --git a/Assets/Scripts/GridBuildingSystem/GridBuildingSystem.cs.meta b/Assets/Scripts/GridBuildingSystem/GridBuildingSystem.cs.meta new file mode 100644 index 00000000..675be9dd --- /dev/null +++ b/Assets/Scripts/GridBuildingSystem/GridBuildingSystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a18076dea00d39a4d8242bb7d35b4c61 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GridBuildingSystem/GridObject.cs b/Assets/Scripts/GridBuildingSystem/GridObject.cs new file mode 100644 index 00000000..ab3a045b --- /dev/null +++ b/Assets/Scripts/GridBuildingSystem/GridObject.cs @@ -0,0 +1,41 @@ +using UnityEngine; + +public class GridObject +{ + private GridXZ _grid; + private int _x; + private int _z; + private Transform _transform; + + + public GridObject(GridXZ grid, int x, int z) + { + _grid = grid; + _x = x; + _z = z; + } + + public void SetTransform(Transform transform) + { + _transform = transform; + _grid.TriggerGridObjectChanged(_x, _z); + } + + public void ClearTransform() + { + _transform = null; + _grid.TriggerGridObjectChanged(_x, _z); + } + + public bool CanPlace() + { + return _transform == null; + } + + public override string ToString() + { + return _x + "," + _z; + } +} + + diff --git a/Assets/Scripts/GridBuildingSystem/GridObject.cs.meta b/Assets/Scripts/GridBuildingSystem/GridObject.cs.meta new file mode 100644 index 00000000..36f82c43 --- /dev/null +++ b/Assets/Scripts/GridBuildingSystem/GridObject.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9f2d010b7a2027743b08242c203a8f06 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GridBuildingSystem/GridXZ.cs b/Assets/Scripts/GridBuildingSystem/GridXZ.cs new file mode 100644 index 00000000..6bc7e9f3 --- /dev/null +++ b/Assets/Scripts/GridBuildingSystem/GridXZ.cs @@ -0,0 +1,145 @@ +/* + ------------------- Code Monkey ------------------- + + Thank you for downloading this package + I hope you find it useful in your projects + If you have any questions let me know + Cheers! + + unitycodemonkey.com + -------------------------------------------------- + */ + +using System; +using UnityEngine; + +public class GridXZ +{ + + public event EventHandler OnGridObjectChanged; + public class OnGridObjectChangedEventArgs : EventArgs + { + public int x; + public int z; + } + + private int width; + private int height; + private float cellSize; + private Vector3 originPosition; + private TGridObject[,] gridArray; + + public GridXZ(int width, int height, float cellSize, Vector3 originPosition, Func, int, int, TGridObject> createGridObject) + { + this.width = width; + this.height = height; + this.cellSize = cellSize; + this.originPosition = originPosition; + + gridArray = new TGridObject[width, height]; + + for (int x = 0; x < gridArray.GetLength(0); x++) + { + for (int z = 0; z < gridArray.GetLength(1); z++) + { + gridArray[x, z] = createGridObject(this, x, z); + } + } + + bool showDebug = true; + if (showDebug) + { + TextMesh[,] debugTextArray = new TextMesh[width, height]; + + for (int x = 0; x < gridArray.GetLength(0); x++) + { + for (int z = 0; z < gridArray.GetLength(1); z++) + { + Debug.DrawLine(GetWorldPosition(x, z), GetWorldPosition(x, z + 1), Color.white, 100f); + Debug.DrawLine(GetWorldPosition(x, z), GetWorldPosition(x + 1, z), Color.white, 100f); + } + } + Debug.DrawLine(GetWorldPosition(0, height), GetWorldPosition(width, height), Color.white, 100f); + Debug.DrawLine(GetWorldPosition(width, 0), GetWorldPosition(width, height), Color.white, 100f); + + OnGridObjectChanged += (object sender, OnGridObjectChangedEventArgs eventArgs) => + { + debugTextArray[eventArgs.x, eventArgs.z].text = gridArray[eventArgs.x, eventArgs.z]?.ToString(); + }; + } + } + + public int GetWidth() + { + return width; + } + + public int GetHeight() + { + return height; + } + + public float GetCellSize() + { + return cellSize; + } + + public Vector3 GetWorldPosition(int x, int z) + { + return new Vector3(x, 0, z) * cellSize + originPosition; + } + + public void GetXZ(Vector3 worldPosition, out int x, out int z) + { + x = Mathf.FloorToInt((worldPosition - originPosition).x / cellSize); + z = Mathf.FloorToInt((worldPosition - originPosition).z / cellSize); + } + + public void SetGridObject(int x, int z, TGridObject value) + { + if (x >= 0 && z >= 0 && x < width && z < height) + { + gridArray[x, z] = value; + TriggerGridObjectChanged(x, z); + } + } + + public void TriggerGridObjectChanged(int x, int z) + { + OnGridObjectChanged?.Invoke(this, new OnGridObjectChangedEventArgs { x = x, z = z }); + } + + public void SetGridObject(Vector3 worldPosition, TGridObject value) + { + GetXZ(worldPosition, out int x, out int z); + SetGridObject(x, z, value); + } + + public TGridObject GetGridObject(int x, int z) + { + if (x >= 0 && z >= 0 && x < width && z < height) + { + return gridArray[x, z]; + } + else + { + return default(TGridObject); + } + } + + public TGridObject GetGridObject(Vector3 worldPosition) + { + int x, z; + GetXZ(worldPosition, out x, out z); + return GetGridObject(x, z); + } + + public Vector2Int ValidateGridPosition(Vector2Int gridPosition) + { + return new Vector2Int( + Mathf.Clamp(gridPosition.x, 0, width - 1), + Mathf.Clamp(gridPosition.y, 0, height - 1) + ); + } + +} diff --git a/Assets/Scripts/GridBuildingSystem/GridXZ.cs.meta b/Assets/Scripts/GridBuildingSystem/GridXZ.cs.meta new file mode 100644 index 00000000..1b423150 --- /dev/null +++ b/Assets/Scripts/GridBuildingSystem/GridXZ.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a6f5d126221c69c4f904305c550ba857 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GridBuildingSystem/Mouse3d.cs b/Assets/Scripts/GridBuildingSystem/Mouse3d.cs new file mode 100644 index 00000000..5e8e5edc --- /dev/null +++ b/Assets/Scripts/GridBuildingSystem/Mouse3d.cs @@ -0,0 +1,33 @@ +using UnityEngine; + +public class Mouse3d : MonoBehaviour +{ + public static Mouse3d Instance { get; private set; } + [SerializeField] private LayerMask _mouseColliderLayerMask = new LayerMask(); + + private void Awake() + { + Instance = this; + _mouseColliderLayerMask = transform.gameObject.layer; + } + private void Update() + { + Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); + if (Physics.Raycast(ray, out RaycastHit hit, 999f, _mouseColliderLayerMask)) + { + transform.position = hit.point; + } + } + public static Vector3 GetMouseWorldPosition() => Instance.GetMouseWorldPosition_Instance(); + private Vector3 GetMouseWorldPosition_Instance() + { + var ray = Camera.main.ScreenPointToRay(Input.mousePosition); + if (Physics.Raycast(ray, out RaycastHit hit, 999f, _mouseColliderLayerMask)) + { + return hit.point; + } + return Vector3.zero; + } +} + + diff --git a/Assets/Scripts/GridBuildingSystem/Mouse3d.cs.meta b/Assets/Scripts/GridBuildingSystem/Mouse3d.cs.meta new file mode 100644 index 00000000..d1890629 --- /dev/null +++ b/Assets/Scripts/GridBuildingSystem/Mouse3d.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 22e20f55292258c479f3c37c0806694d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/manifest.json b/Packages/manifest.json index 97a941b1..e1b00c3c 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,17 +1,18 @@ { "dependencies": { "com.unity.2d.sprite": "1.0.0", - "com.unity.collab-proxy": "1.17.6", + "com.unity.ai.navigation": "1.1.1", + "com.unity.collab-proxy": "2.0.0", "com.unity.feature.development": "1.0.1", - "com.unity.ide.rider": "3.0.16", - "com.unity.ide.visualstudio": "2.0.16", + "com.unity.ide.rider": "3.0.18", + "com.unity.ide.visualstudio": "2.0.17", "com.unity.ide.vscode": "1.2.5", "com.unity.probuilder": "5.0.6", - "com.unity.test-framework": "1.1.31", + "com.unity.test-framework": "1.1.33", "com.unity.textmeshpro": "3.0.6", - "com.unity.timeline": "1.6.4", + "com.unity.timeline": "1.7.2", "com.unity.ugui": "1.0.0", - "com.unity.visualscripting": "1.7.8", + "com.unity.visualscripting": "1.8.0", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index e2c734b7..ce6020e6 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -6,15 +6,22 @@ "source": "builtin", "dependencies": {} }, - "com.unity.collab-proxy": { - "version": "1.17.6", + "com.unity.ai.navigation": { + "version": "1.1.1", "depth": 0, "source": "registry", "dependencies": { - "com.unity.services.core": "1.0.1" + "com.unity.modules.ai": "1.0.0" }, "url": "https://packages.unity.com" }, + "com.unity.collab-proxy": { + "version": "2.0.0", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, "com.unity.editorcoroutines": { "version": "1.0.0", "depth": 1, @@ -34,17 +41,17 @@ "depth": 0, "source": "builtin", "dependencies": { - "com.unity.ide.visualstudio": "2.0.16", - "com.unity.ide.rider": "3.0.16", + "com.unity.ide.visualstudio": "2.0.17", + "com.unity.ide.rider": "3.0.18", "com.unity.ide.vscode": "1.2.5", "com.unity.editorcoroutines": "1.0.0", "com.unity.performance.profile-analyzer": "1.1.1", - "com.unity.test-framework": "1.1.31", - "com.unity.testtools.codecoverage": "1.0.1" + "com.unity.test-framework": "1.1.33", + "com.unity.testtools.codecoverage": "1.2.2" } }, "com.unity.ide.rider": { - "version": "3.0.16", + "version": "3.0.18", "depth": 0, "source": "registry", "dependencies": { @@ -53,7 +60,7 @@ "url": "https://packages.unity.com" }, "com.unity.ide.visualstudio": { - "version": "2.0.16", + "version": "2.0.17", "depth": 0, "source": "registry", "dependencies": { @@ -68,13 +75,6 @@ "dependencies": {}, "url": "https://packages.unity.com" }, - "com.unity.nuget.newtonsoft-json": { - "version": "3.0.2", - "depth": 2, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, "com.unity.performance.profile-analyzer": { "version": "1.1.1", "depth": 1, @@ -93,26 +93,15 @@ }, "url": "https://packages.unity.com" }, - "com.unity.services.core": { - "version": "1.6.0", - "depth": 1, - "source": "registry", - "dependencies": { - "com.unity.modules.unitywebrequest": "1.0.0", - "com.unity.nuget.newtonsoft-json": "3.0.2", - "com.unity.modules.androidjni": "1.0.0" - }, - "url": "https://packages.unity.com" - }, "com.unity.settings-manager": { - "version": "1.0.3", + "version": "2.0.1", "depth": 1, "source": "registry", "dependencies": {}, "url": "https://packages.unity.com" }, "com.unity.test-framework": { - "version": "1.1.31", + "version": "1.1.33", "depth": 0, "source": "registry", "dependencies": { @@ -123,7 +112,7 @@ "url": "https://packages.unity.com" }, "com.unity.testtools.codecoverage": { - "version": "1.0.1", + "version": "1.2.2", "depth": 1, "source": "registry", "dependencies": { @@ -142,7 +131,7 @@ "url": "https://packages.unity.com" }, "com.unity.timeline": { - "version": "1.6.4", + "version": "1.7.2", "depth": 0, "source": "registry", "dependencies": { @@ -163,7 +152,7 @@ } }, "com.unity.visualscripting": { - "version": "1.7.8", + "version": "1.8.0", "depth": 0, "source": "registry", "dependencies": { @@ -304,17 +293,6 @@ "version": "1.0.0", "depth": 0, "source": "builtin", - "dependencies": { - "com.unity.modules.ui": "1.0.0", - "com.unity.modules.imgui": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0", - "com.unity.modules.uielementsnative": "1.0.0" - } - }, - "com.unity.modules.uielementsnative": { - "version": "1.0.0", - "depth": 1, - "source": "builtin", "dependencies": { "com.unity.modules.ui": "1.0.0", "com.unity.modules.imgui": "1.0.0", diff --git a/ProjectSettings/Packages/com.unity.probuilder/Settings.json b/ProjectSettings/Packages/com.unity.probuilder/Settings.json index 085e781a..f9c0edd8 100644 --- a/ProjectSettings/Packages/com.unity.probuilder/Settings.json +++ b/ProjectSettings/Packages/com.unity.probuilder/Settings.json @@ -1,6 +1,4 @@ { - "m_Name": "Settings", - "m_Path": "ProjectSettings/Packages/com.unity.probuilder/Settings.json", "m_Dictionary": { "m_DictionaryValues": [ { diff --git a/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json b/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json index ad11087f..3c7b4c18 100644 --- a/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json +++ b/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json @@ -1,6 +1,4 @@ { - "m_Name": "Settings", - "m_Path": "ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json", "m_Dictionary": { "m_DictionaryValues": [] } diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 6a95707e..b2f0d298 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2021.3.14f1 -m_EditorVersionWithRevision: 2021.3.14f1 (eee1884e7226) +m_EditorVersion: 2022.2.5f1 +m_EditorVersionWithRevision: 2022.2.5f1 (551d45108343) diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index cdf890e5..14d2f353 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -9,7 +9,7 @@ TagManager: - Default - TransparentFX - Ignore Raycast - - + - MouseColiderLayer - Water - UI - diff --git a/ProjectSettings/boot.config b/ProjectSettings/boot.config deleted file mode 100644 index e69de29b..00000000