diff --git a/Assets/Editor/SceneCameraEditor.cs b/Assets/Editor/SceneCameraEditor.cs index 211651a..9e1a4c5 100644 --- a/Assets/Editor/SceneCameraEditor.cs +++ b/Assets/Editor/SceneCameraEditor.cs @@ -3,7 +3,7 @@ using UnityEditor; public class SceneViewCameraTest { - [MenuItem("Tools/Move Scene To Camera #c")] + [MenuItem("Tools/Camera/Snap Scene To Camera #c")] static public void MoveSceneViewCamera() { @@ -23,4 +23,23 @@ public class SceneViewCameraTest SceneView.lastActiveSceneView.Repaint(); } + + [MenuItem("Tools/Camera/Snap Camera To Scene &#c")] + static public void MoveCameraToScene() + { + + if (Camera.main == null) + { + Debug.LogError("No Main camera in scene"); + return; + } + + + GameObject camera = Camera.main.gameObject; + Undo.RegisterCompleteObjectUndo(camera, "Snapped Camera to Scene View"); + + camera.transform.position = SceneView.lastActiveSceneView.pivot; + camera.transform.rotation = SceneView.lastActiveSceneView.rotation; + camera.transform.position -= Camera.main.transform.forward * SceneView.lastActiveSceneView.size; + } } \ No newline at end of file diff --git a/Assets/Scenes/Networking Test Scenes/ClientScene.unity b/Assets/Scenes/Networking Test Scenes/ClientScene.unity index 0202736..831ba91 100644 --- a/Assets/Scenes/Networking Test Scenes/ClientScene.unity +++ b/Assets/Scenes/Networking Test Scenes/ClientScene.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.44657868, g: 0.49641263, b: 0.57481706, a: 1} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -229,7 +229,7 @@ Camera: m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 2 - m_BackGroundColor: {r: 0.011480933, g: 0.7870813, b: 0.8113208, a: 0} + m_BackGroundColor: {r: 0.9607844, g: 0.9607844, b: 0.96470594, a: 1} m_projectionMatrixMode: 1 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} @@ -473,7 +473,7 @@ PrefabInstance: - target: {fileID: 5195354181806561359, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, type: 3} propertyPath: m_AnchoredPosition.y - value: 0.000038146973 + value: -0.000008558129 objectReference: {fileID: 0} - target: {fileID: 5195354181806561359, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, type: 3} @@ -483,7 +483,7 @@ PrefabInstance: - target: {fileID: 5195354181806561359, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, type: 3} propertyPath: m_AnchoredPosition.x - value: 0.0000627838 + value: -0.000042438158 objectReference: {fileID: 0} - target: {fileID: 5195354183101525346, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, type: 3} @@ -535,6 +535,81 @@ PrefabInstance: propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: OnClick_Play objectReference: {fileID: 0} + - target: {fileID: 5195354183101525349, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.r + value: 0.882353 + objectReference: {fileID: 0} + - target: {fileID: 5195354183101525349, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.g + value: 0.8862746 + objectReference: {fileID: 0} + - target: {fileID: 5195354183101525349, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.b + value: 0.882353 + objectReference: {fileID: 0} + - target: {fileID: 5195354183101525349, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5195354183101525349, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + - target: {fileID: 5195354183134146559, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.r + value: 0.882353 + objectReference: {fileID: 0} + - target: {fileID: 5195354183134146559, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.g + value: 0.8862746 + objectReference: {fileID: 0} + - target: {fileID: 5195354183134146559, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.b + value: 0.882353 + objectReference: {fileID: 0} + - target: {fileID: 5195354183134146559, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 0} + - target: {fileID: 5195354183134146559, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5195354182925078847, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.r + value: 0.9607844 + objectReference: {fileID: 0} + - target: {fileID: 5195354182925078847, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.g + value: 0.9607844 + objectReference: {fileID: 0} + - target: {fileID: 5195354182925078847, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.b + value: 0.96470594 + objectReference: {fileID: 0} + - target: {fileID: 5195354182925078847, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Color.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5195354182925078847, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} m_RemovedComponents: - {fileID: 5195354182462625307, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, type: 3} m_SourcePrefab: {fileID: 100100000, guid: 3fbc9b76d5c4f7348b60a029bc2ba63f, type: 3} diff --git a/Assets/Scenes/Server Scenes/ServerTestScene.unity b/Assets/Scenes/Server Scenes/ServerTestScene.unity new file mode 100644 index 0000000..87ea6c3 --- /dev/null +++ b/Assets/Scenes/Server Scenes/ServerTestScene.unity @@ -0,0 +1,2721 @@ +%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.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1001 &18308126 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (19) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 31 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &18308127 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 18308126} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &87827994 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (7) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &87827995 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 87827994} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &180452438 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (3) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &180452439 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 180452438} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &243579882 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (4) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 16 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &243579883 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 243579882} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &308885818 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (11) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &308885819 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 308885818} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &324466272 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (9) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 21 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &324466273 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 324466272} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &335148357 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (1) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &335148358 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 335148357} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &425205771 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (16) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 28 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &425205772 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 425205771} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &435310022 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (20) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 32 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &435310023 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 435310022} + m_PrefabAsset: {fileID: 0} +--- !u!1 &480750761 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 480750763} + - component: {fileID: 480750762} + 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 &480750762 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480750761} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + 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_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &480750763 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480750761} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1001 &487779860 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (4) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &487779861 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 487779860} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &623478537 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (7) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 19 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &623478538 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 623478537} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &670049477 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &670049478 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 670049477} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &684388500 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (21) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 33 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &684388501 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 684388500} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &745569010 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &745569011 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 745569010} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &748269737 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (2) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &748269738 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 748269737} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &748767420 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (5) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &748767421 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 748767420} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &765965441 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (17) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 29 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &765965442 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 765965441} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &814648936 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (1) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &814648937 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 814648936} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &837073224 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (5) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &837073225 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 837073224} + m_PrefabAsset: {fileID: 0} +--- !u!1 &902311064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 902311065} + m_Layer: 0 + m_Name: Ground Object + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &902311065 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 902311064} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 670049478} + - {fileID: 745569011} + - {fileID: 335148358} + - {fileID: 1769288927} + - {fileID: 1471253762} + - {fileID: 487779861} + - {fileID: 748767421} + - {fileID: 1458944722} + - {fileID: 87827995} + - {fileID: 1437209178} + - {fileID: 2068018197} + - {fileID: 1101212184} + - {fileID: 308885819} + - {fileID: 814648937} + - {fileID: 748269738} + - {fileID: 180452439} + - {fileID: 243579883} + - {fileID: 837073225} + - {fileID: 2140681813} + - {fileID: 623478538} + - {fileID: 1775613352} + - {fileID: 324466273} + - {fileID: 1849723661} + - {fileID: 1057879858} + - {fileID: 948939026} + - {fileID: 1642193075} + - {fileID: 1825998952} + - {fileID: 1082527725} + - {fileID: 425205772} + - {fileID: 765965442} + - {fileID: 1516868865} + - {fileID: 18308127} + - {fileID: 435310023} + - {fileID: 684388501} + - {fileID: 1424436107} + - {fileID: 1976719702} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &941579397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 941579400} + - component: {fileID: 941579399} + - component: {fileID: 941579398} + 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 &941579398 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 941579397} + m_Enabled: 1 +--- !u!20 &941579399 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 941579397} + 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_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &941579400 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 941579397} + m_LocalRotation: {x: -0.12784182, y: 0.87214345, z: -0.3311875, w: -0.33665597} + m_LocalPosition: {x: 2.9006956, y: 4.347286, z: 3.4624305} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 28.524002, y: 0, z: 0} +--- !u!1001 &948939025 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (12) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &948939026 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 948939025} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1057879857 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (11) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 23 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &1057879858 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 1057879857} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1082527724 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (15) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 27 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &1082527725 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 1082527724} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1101212183 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (10) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &1101212184 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 1101212183} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1126605994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1126605995} + m_Layer: 0 + m_Name: GameManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1126605995 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1126605994} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.0356328, y: -1.4375196, z: -0.7047038} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1424436106 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (22) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 34 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &1424436107 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 1424436106} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1437209177 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (8) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &1437209178 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 1437209177} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1458944721 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (6) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &1458944722 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 1458944721} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1471253761 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (3) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &1471253762 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 1471253761} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1516868864 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (18) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &1516868865 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 1516868864} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1642193074 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (13) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 25 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &1642193075 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 1642193074} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1769288926 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (2) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &1769288927 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 1769288926} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1775613351 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (8) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &1775613352 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 1775613351} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1825998951 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (14) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 26 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &1825998952 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 1825998951} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1849723660 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (10) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 22 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &1849723661 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 1849723660} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1976719701 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (23) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &1976719702 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 1976719701} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2068018196 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1141756196039588, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_Name + value: Cube_GroundWGrass (9) + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalPosition.z + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_RootOrder + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d7698c69246c64044ab2a94628bf0291, type: 3} +--- !u!4 &2068018197 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4490970058520500, guid: d7698c69246c64044ab2a94628bf0291, + type: 3} + m_PrefabInstance: {fileID: 2068018196} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2085069966 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2085069970} + - component: {fileID: 2085069969} + - component: {fileID: 2085069968} + - component: {fileID: 2085069967} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &2085069967 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085069966} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &2085069968 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085069966} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 8458fb68d0c533740907272ffbe7983b, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + 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 +--- !u!33 &2085069969 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085069966} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &2085069970 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2085069966} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 1, z: 0} + m_LocalScale: {x: 3.7385, y: 3.7385, z: 3.7385} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &2140681812 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 902311065} + m_Modifications: + - target: {fileID: 1133981147424236, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_Name + value: Cube_Ground (6) + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.x + value: -2 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_RootOrder + value: 18 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e5fac62723232674aa487c9073f1ca07, type: 3} +--- !u!4 &2140681813 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4721099042904524, guid: e5fac62723232674aa487c9073f1ca07, + type: 3} + m_PrefabInstance: {fileID: 2140681812} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Scenes/Server Scenes/ServerTestScene.unity.meta b/Assets/Scenes/Server Scenes/ServerTestScene.unity.meta new file mode 100644 index 0000000..5465384 --- /dev/null +++ b/Assets/Scenes/Server Scenes/ServerTestScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a3814f29f4e89e64f95791dff9bb00ea +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Block.cs b/Assets/Scripts/Block.cs index e0494e9..0e08cc5 100644 --- a/Assets/Scripts/Block.cs +++ b/Assets/Scripts/Block.cs @@ -17,6 +17,10 @@ public class Block : MonoBehaviour [SerializeField] [Tooltip("Can this type of block be walked on")] private bool _isWalkable = true; + + [SerializeField] + [Tooltip("Can this block be spawned on")] + public bool isSpawnable = false; #endregion InspectorFields #region ReadOnly Properties diff --git a/Assets/Scripts/Character.cs b/Assets/Scripts/Character.cs index 5ac7bb8..bb682f1 100644 --- a/Assets/Scripts/Character.cs +++ b/Assets/Scripts/Character.cs @@ -10,10 +10,6 @@ public class Character : MonoBehaviour Animator characterAnimator; #region Inspector Fields - - [SerializeField] - private Inventory startingInventory; - [SerializeField] [Tooltip("Will move to this block at start, else will try and find a block below")] private Block CurrentBlock; @@ -31,8 +27,8 @@ public class Character : MonoBehaviour private void Awake() { - if (Inventory != null || startingInventory != null) - Inventory.Clone(startingInventory); + if (Inventory != null) + Inventory = Inventory.Clone(Inventory); //If no starting block find one below it if (CurrentBlock == null) @@ -52,6 +48,9 @@ public class Character : MonoBehaviour #region Class Implementation + public void Initialise() { } + + public Vector3 yValue(float time, float heightMultiplier) { float y = Mathf.Sin((Mathf.PI*time)) * heightMultiplier; diff --git a/Assets/Models.meta b/Assets/Scripts/Components.meta similarity index 77% rename from Assets/Models.meta rename to Assets/Scripts/Components.meta index 5346456..5a95b09 100644 --- a/Assets/Models.meta +++ b/Assets/Scripts/Components.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 296bd90e667df1f4697823a0aa45acf0 +guid: 8d7394d70ec233849a60a26da5f23b75 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/Inventory.cs b/Assets/Scripts/Inventory.cs index cf388c6..9f21e5d 100644 --- a/Assets/Scripts/Inventory.cs +++ b/Assets/Scripts/Inventory.cs @@ -48,11 +48,12 @@ public class Inventory : ScriptableObject data.Count--; } - public void Clone(Inventory inventory) + public static Inventory Clone(Inventory copy) { + Inventory retVal = ScriptableObject.CreateInstance(); + retVal._bagItems = new List(copy._bagItems); - _bagItems = new List(inventory._bagItems); - + return retVal; } diff --git a/Assets/Scripts/Logic/BlockReader.cs b/Assets/Scripts/Logic/BlockReader.cs index 5d32ef1..867cd97 100644 --- a/Assets/Scripts/Logic/BlockReader.cs +++ b/Assets/Scripts/Logic/BlockReader.cs @@ -26,6 +26,11 @@ public class BlockReader /// public event System.Action OnUpdate; + /// + /// Gets the current block in the logic chain + /// + public LogicBlock CurrentBlock { get { return LogicChain[currentBlockIndex]; } } + #endregion Read-only Variables #region Private Variables diff --git a/Assets/Scripts/Logic/Blocks/CombinedBlock.cs b/Assets/Scripts/Logic/Blocks/CombinedBlock.cs index ad2d42e..f9cae82 100644 --- a/Assets/Scripts/Logic/Blocks/CombinedBlock.cs +++ b/Assets/Scripts/Logic/Blocks/CombinedBlock.cs @@ -35,6 +35,18 @@ public class CombinedBlock : LogicBlock blockReader.Read(player,animationTime); } + + /// + /// Returns the block that the character will endUp on after they use this logic element + /// + /// block character is on + /// layers to ignore + /// block which character will finish on after performing this function + public override Block GetEndBlock(Block startBlock, Transform transform, LayerMask layerMask) + { + return blockReader.CurrentBlock.GetEndBlock(startBlock, transform, layerMask); + } + /// /// Resets the block to be ready to used again /// diff --git a/Assets/Scripts/Logic/Blocks/Jump.cs b/Assets/Scripts/Logic/Blocks/Jump.cs index 9c044dd..b0f69bb 100644 --- a/Assets/Scripts/Logic/Blocks/Jump.cs +++ b/Assets/Scripts/Logic/Blocks/Jump.cs @@ -14,6 +14,14 @@ public class Jump : LogicBlock [Tooltip("Direction to Jump")] protected Direction direction = Direction.Forward; + [SerializeField] + [Tooltip("Max distance Jump can go")] + protected int Distance = 2; + + [SerializeField] + [Tooltip("Max height Jump can go")] + protected int Height = 1; + #region Class Functions /// @@ -25,6 +33,87 @@ public class Jump : LogicBlock player.Jump(direction, animationTime); } + /// + /// Returns the block that the character will endUp on after they use this logic element + /// + /// block character is on + /// layers to ignore + /// block which character will finish on after performing this function + public override Block GetEndBlock(Block startBlock, Transform transform, LayerMask layerMask) + { + //if there is a block infront JumpUp else LongJump + if (Block.isBlockAtPosition(startBlock.position + direction.ToVector(transform) + Vector3.up, 1, layerMask)) + return JumpUp(startBlock, transform, layerMask); + else + return JumpLong(startBlock, transform, layerMask); + } + + + #endregion Class Functions + + #region Helper Functions + private Block JumpLong(Block StartBlock, Transform transform, LayerMask layerMask) + { + //setting up variables + Vector3 position; // position wanted + Block hit; //output of block detection + Block retVal = StartBlock; //block we'll actually move to + + //Check blocks in front until we hit an obstruction or went the distance + for (int i = 1; i <= Distance; i++) + { + //Next position to MoveTo + position = StartBlock.position + (direction.ToVector(transform) * i); + + //if jump is obstructed, stop and go to last known block + if (Block.isBlockAtPosition(position + Vector3.up, 1, layerMask)) + break; + + + //If block at Position is walkable set it to last known position + if (Block.isBlockAtPosition(position, 1, layerMask, out hit) && hit.isWalkable(layerMask)) + retVal = hit; + //else if block down one is walkable + else if (Block.isBlockAtPosition(position + Vector3.down, 1, layerMask, out hit) && hit.isWalkable(layerMask)) + retVal = hit; + + } + + return retVal; + } + + /// + /// Jumps up obstacle of specific height. Jumps as high as possible + /// + /// Direction of obstacle + /// max height + private Block JumpUp(Block StartBlock, Transform transform, LayerMask layerMask) + { + //setting up variables + Vector3 position; // position wanted + Block hit; //output of block detection + Block retVal = StartBlock; //block we'll actually move to + + //Check blocks in going up then move to the heighest walkable one + for (int i = 0; i <= Height; i++) + { + //next position up the tower + position = StartBlock.position + direction.ToVector(transform) + (Vector3.up * i); + + //if block is walkable set it to last known position + if (Block.isBlockAtPosition(position, 1, layerMask, out hit) && hit.isWalkable(layerMask)) + retVal = hit; + } + + return retVal; + } + + + #endregion Helper Functions + + + + #region Serialisation functions public override void CopyToken(BlockToken token) { base.CopyToken(token); @@ -41,6 +130,7 @@ public class Jump : LogicBlock return retVal; } + #endregion Serialisation functions + - #endregion Class Functions } \ No newline at end of file diff --git a/Assets/Scripts/Logic/Blocks/LogicBlock.cs b/Assets/Scripts/Logic/Blocks/LogicBlock.cs index d8c1212..7ac8f1e 100644 --- a/Assets/Scripts/Logic/Blocks/LogicBlock.cs +++ b/Assets/Scripts/Logic/Blocks/LogicBlock.cs @@ -73,6 +73,15 @@ public abstract class LogicBlock : ScriptableObject /// returns true if block is finished protected abstract void BlockLogic(Character player, float animationTime); + /// + /// Returns the block that the character will endUp on after they use this logic element + /// + /// block character is on + /// transform function will be based off + /// layers to ignore + /// block which character will finish on after performing this function + public abstract Block GetEndBlock(Block startBlock,Transform transform, LayerMask layerMask); + /// /// Resets the block to be ready to used again /// diff --git a/Assets/Scripts/Logic/Blocks/Move.cs b/Assets/Scripts/Logic/Blocks/Move.cs index d807b65..496b7a2 100644 --- a/Assets/Scripts/Logic/Blocks/Move.cs +++ b/Assets/Scripts/Logic/Blocks/Move.cs @@ -24,6 +24,33 @@ public class Move : LogicBlock player.Move(direction, animationTime); } + /// + /// Returns the block that the character will endUp on after they use this logic element + /// + /// block character is on + /// layers to ignore + /// + public override Block GetEndBlock(Block startBlock,Transform tranform, LayerMask layerMask) + { + Vector3 wantedPosition = startBlock.position + direction.ToVector(tranform); // position wanted + Block hit; //output of block detection + Block retVal = startBlock; //Block we'll move to + + //If block at Position is walkable set it to moveTo + if (Block.isBlockAtPosition(wantedPosition, 1, layerMask, out hit) && hit.isWalkable(layerMask)) + { + retVal = hit; + } + //else if block down one is walkable + else if (Block.isBlockAtPosition(wantedPosition + Vector3.down, 1, layerMask, out hit) && hit.isWalkable(layerMask)) + { + //and it isn't obstructed + if (Block.isBlockAtPosition(wantedPosition + Vector3.up, 1, layerMask, out hit)) + retVal = hit; + } + + return retVal; + } public override void CopyToken(BlockToken token) { diff --git a/Assets/Scripts/Logic/Blocks/Rotate.cs b/Assets/Scripts/Logic/Blocks/Rotate.cs index f29890b..b586551 100644 --- a/Assets/Scripts/Logic/Blocks/Rotate.cs +++ b/Assets/Scripts/Logic/Blocks/Rotate.cs @@ -28,6 +28,18 @@ public class Rotate : LogicBlock player.Rotate(direction, animationTime); } + /// + /// Returns the block that the character will endUp on after they use this logic element + /// + /// block character is on + /// layers to ignore + /// block which character will finish on after performing this function + public override Block GetEndBlock(Block startBlock,Transform transform, LayerMask layerMask) + { + //no movement when rotating + return startBlock; + } + public override void CopyToken(BlockToken token) { base.CopyToken(token); diff --git a/Assets/Scripts/LogicBlocks.meta b/Assets/Scripts/Managers.meta similarity index 77% rename from Assets/Scripts/LogicBlocks.meta rename to Assets/Scripts/Managers.meta index 98af9d1..a348df1 100644 --- a/Assets/Scripts/LogicBlocks.meta +++ b/Assets/Scripts/Managers.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8936b441d7647f74884c94f97bfb8931 +guid: b60aeba4397d2c14497efdb96fd3b061 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/Managers/GameManager.cs b/Assets/Scripts/Managers/GameManager.cs new file mode 100644 index 0000000..1c6a75e --- /dev/null +++ b/Assets/Scripts/Managers/GameManager.cs @@ -0,0 +1,48 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using Networking.Server; + + +public class GameManager : MonoBehaviour +{ + #region Inspector Field + + [Header("References")] + [SerializeField] + [Tooltip("Prefab of character for players to play")] + private Character characterPrefab; + + [SerializeField] + private ConnectionHandler ClientList; + #endregion Inspector Field + + + #region Private Variables + private Block[] SpawnBlocks; + #endregion Private Variables + + public void Start() + { + SpawnBlocks = FindObjectsOfType().Where(p => p.isSpawnable).ToArray(); + + + } + + + + + private void SpawnCharacters() + { + foreach(ClientData client in ClientList) + { + Character newChar = Instantiate(characterPrefab); + newChar.transform.position = SpawnBlocks[0].VisualPosition; + } + + + + } + +} diff --git a/Assets/Scripts/Managers/GameManager.cs.meta b/Assets/Scripts/Managers/GameManager.cs.meta new file mode 100644 index 0000000..dd2a4f4 --- /dev/null +++ b/Assets/Scripts/Managers/GameManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a22c943adbcdf7f4d8c3b5dee307012d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Networking/Server/ClientData.cs b/Assets/Scripts/Networking/Server/ClientData.cs index 915ccd1..803bb2f 100644 --- a/Assets/Scripts/Networking/Server/ClientData.cs +++ b/Assets/Scripts/Networking/Server/ClientData.cs @@ -8,7 +8,7 @@ namespace Networking.Server { [CreateAssetMenu(menuName = "Major Project/Networking/ClientList", order = 150)] - public class ConnectionHandler : ScriptableObject + public class ConnectionHandler : ScriptableObject, IEnumerable { @@ -132,7 +132,17 @@ namespace Networking.Server } + #region IEnumerable Implementation + public IEnumerator GetEnumerator() + { + return ((IEnumerable)ConnectedClients).GetEnumerator(); + } + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)ConnectedClients).GetEnumerator(); + } + #endregion IEnumerable Implementation } [System.Serializable] diff --git a/Assets/Third Party Assets/KUBIKOS - World/Materials/RocksBlue_Mat.mat b/Assets/Third Party Assets/KUBIKOS - World/Materials/RocksBlue_Mat.mat index 35dd89c..412f456 100644 --- a/Assets/Third Party Assets/KUBIKOS - World/Materials/RocksBlue_Mat.mat +++ b/Assets/Third Party Assets/KUBIKOS - World/Materials/RocksBlue_Mat.mat @@ -4,13 +4,15 @@ Material: serializedVersion: 6 m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_Name: RocksBlue_Mat m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: _METALLICGLOSSMAP m_LightmapFlags: 4 m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] diff --git a/Assets/Third Party Assets/KUBIKOS - World/Materials/TreesAndPlants_Mat.mat b/Assets/Third Party Assets/KUBIKOS - World/Materials/TreesAndPlants_Mat.mat index 6ec26c6..d53cb4e 100644 --- a/Assets/Third Party Assets/KUBIKOS - World/Materials/TreesAndPlants_Mat.mat +++ b/Assets/Third Party Assets/KUBIKOS - World/Materials/TreesAndPlants_Mat.mat @@ -4,13 +4,15 @@ Material: serializedVersion: 6 m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_Name: TreesAndPlants_Mat m_Shader: {fileID: 4800000, guid: db493d1f180f23c43a06dc37f91998a7, type: 3} m_ShaderKeywords: _NORMALMAP _SPECGLOSSMAP m_LightmapFlags: 4 m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] diff --git a/Assets/Third Party Assets/KUBIKOS - World/Textures/Rocks/Materials.meta b/Assets/Third Party Assets/KUBIKOS - World/Textures/Rocks/Materials.meta new file mode 100644 index 0000000..4a8b072 --- /dev/null +++ b/Assets/Third Party Assets/KUBIKOS - World/Textures/Rocks/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2604bcb9f5c8b5a4aa6e3acf7f1d2e16 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/KUBIKOS - World/Textures/Rocks/Materials/Rocks2_D.mat b/Assets/Third Party Assets/KUBIKOS - World/Textures/Rocks/Materials/Rocks2_D.mat new file mode 100644 index 0000000..8c676a6 --- /dev/null +++ b/Assets/Third Party Assets/KUBIKOS - World/Textures/Rocks/Materials/Rocks2_D.mat @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Rocks2_D + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + 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: 2800000, guid: abbd2c18e728a534c80e1824d3d8fc46, type: 3} + 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_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: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/Third Party Assets/KUBIKOS - World/Textures/Rocks/Materials/Rocks2_D.mat.meta b/Assets/Third Party Assets/KUBIKOS - World/Textures/Rocks/Materials/Rocks2_D.mat.meta new file mode 100644 index 0000000..5daba64 --- /dev/null +++ b/Assets/Third Party Assets/KUBIKOS - World/Textures/Rocks/Materials/Rocks2_D.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d34c8522d0974694a894640c21fbbfa8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore.meta b/Assets/Third Party Assets/ProCore.meta new file mode 100644 index 0000000..15dfe3e --- /dev/null +++ b/Assets/Third Party Assets/ProCore.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b81f39d0267c4f24e9ade35cf595fee0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids.meta b/Assets/Third Party Assets/ProCore/ProGrids.meta new file mode 100644 index 0000000..c673f52 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4dc87456bb4f38347b74a915da8aaa4a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About.meta b/Assets/Third Party Assets/ProCore/ProGrids/About.meta new file mode 100644 index 0000000..875bf7f --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e5d530989e5bce94ab5f5291d659f672 +folderAsset: yes +timeCreated: 1518451281 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Editor.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Editor.meta new file mode 100644 index 0000000..665cf1d --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Editor.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 48c14226ec988e64dadd74e4676636cd +folderAsset: yes +timeCreated: 1518451281 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Editor/pg_AboutWindow.cs b/Assets/Third Party Assets/ProCore/ProGrids/About/Editor/pg_AboutWindow.cs new file mode 100644 index 0000000..1728ba9 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Editor/pg_AboutWindow.cs @@ -0,0 +1,414 @@ +using UnityEngine; +using UnityEditor; +using System.Collections; +using System.Text; +using System.Text.RegularExpressions; + +/** + * INSTRUCTIONS + * + * - Only modify properties in the USER SETTINGS region. + * - All content is loaded from external files (pc_AboutEntry_YourProduct. Use the templates! + */ + +/** + * Used to pop up the window on import. + */ +public class pg_AboutWindowSetup : AssetPostprocessor +{ +#region Initialization + + static void OnPostprocessAllAssets ( + string[] importedAssets, + string[] deletedAssets, + string[] movedAssets, + string[] movedFromAssetPaths) + { + + string[] entries = System.Array.FindAll(importedAssets, name => name.Contains("pc_AboutEntry") && !name.EndsWith(".meta")); + + foreach(string str in entries) + if( pg_AboutWindow.Init(str, false) ) + break; + } + + // [MenuItem("Edit/Preferences/Clear About Version: " + AboutWindow.PRODUCT_IDENTIFIER)] + // public static void MenuClearVersionPref() + // { + // EditorPrefs.DeleteKey(AboutWindow.PRODUCT_IDENTIFIER); + // } +#endregion +} + +public class pg_AboutWindow : EditorWindow +{ + +/** + * Modify these constants to customize about screen. + */ +#region User Settings + + /* Path to the root folder */ + const string ABOUT_ROOT = "Assets/ProCore/ProGrids/About"; + + /** + * Changelog.txt file should follow this format: + * + * | -- Product Name 2.1.0 - + * | + * | # Features + * | - All kinds of awesome stuff + * | - New flux capacitor design achieves time travel at lower velocities. + * | - Dark matter reactor recalibrated. + * | + * | # Bug Fixes + * | - No longer explodes when spacebar is pressed. + * | - Fix rolling issue in Rickmeter. + * | + * | # Changes + * | - Changed Blue to Red. + * | - Enter key now causes explosions. + * + * This path is relative to the PRODUCT_ROOT path. + * + * Note that your changelog may contain multiple entries. Only the top-most + * entry will be displayed. + */ + + /** + * Advertisement thumb constructor is: + * new AdvertisementThumb( PathToAdImage : string, URLToPurchase : string, ProductDescription : string ) + * Provide as many or few (or none) as desired. + * + * Notes - The http:// part is required. Partial URLs do not work on Mac. + */ + [SerializeField] + public static AdvertisementThumb[] advertisements = new AdvertisementThumb[] { + new AdvertisementThumb( ABOUT_ROOT + "/Images/ProBuilder_AssetStore_Icon_96px.png", "http://www.protoolsforunity3d.com/probuilder/", "Build and Texture Geometry In-Editor"), + new AdvertisementThumb( ABOUT_ROOT + "/Images/ProGrids_AssetStore_Icon_96px.png", "http://www.protoolsforunity3d.com/progrids/", "True Grids and Grid-Snapping"), + new AdvertisementThumb( ABOUT_ROOT + "/Images/ProGroups_AssetStore_Icon_96px.png", "http://www.protoolsforunity3d.com/progroups/", "Hide, Freeze, Group, & Organize"), + new AdvertisementThumb( ABOUT_ROOT + "/Images/Prototype_AssetStore_Icon_96px.png", "http://www.protoolsforunity3d.com/prototype/", "Design and Build With Zero Lag"), + new AdvertisementThumb( ABOUT_ROOT + "/Images/QuickBrush_AssetStore_Icon_96px.png", "http://www.protoolsforunity3d.com/quickbrush/", "Quickly Add Detail Geometry"), + new AdvertisementThumb( ABOUT_ROOT + "/Images/QuickDecals_AssetStore_Icon_96px.png", "http://www.protoolsforunity3d.com/quickdecals/", "Add Dirt, Splatters, Posters, etc"), + new AdvertisementThumb( ABOUT_ROOT + "/Images/QuickEdit_AssetStore_Icon_96px.png", "http://www.protoolsforunity3d.com/quickedit/", "Edit Imported Meshes!"), + }; +#endregion + +/* Recommend you do not modify these. */ +#region Private Fields (automatically populated) + + private string AboutEntryPath = ""; + + private string ProductName = ""; + // private string ProductIdentifer = ""; + private string ProductVersion = ""; + private string ChangelogPath = ""; + private string BannerPath = ABOUT_ROOT + "/Images/Banner.png"; + + + const int AD_HEIGHT = 96; + + /** + * Struct containing data for use in Advertisement shelf. + */ + [System.Serializable] + public struct AdvertisementThumb + { + public Texture2D image; + public string url; + public string about; + public GUIContent guiContent; + + public AdvertisementThumb(string imagePath, string url, string about) + { + guiContent = new GUIContent("", about); + this.image = (Texture2D) AssetDatabase.LoadAssetAtPath(imagePath, typeof(Texture2D)); + guiContent.image = this.image; + this.url = url; + this.about = about; + } + } + + Texture2D banner; + + // populated by first entry in changelog + string changelog = ""; +#endregion + +#region Init + + // [MenuItem("Tools/Test Search About Window", false, 0)] + // public static void MenuInit() + // { + // // this could be slow in large projects? + // string[] allFiles = System.IO.Directory.GetFiles("Assets/", "*.*", System.IO.SearchOption.AllDirectories); + // string[] entries = System.Array.FindAll(allFiles, name => name.Contains("pc_AboutEntry")); + + // if(entries.Length > 0) + // AboutWindow.Init(entries[0], true); + // } + + /** + * Return true if Init took place, false if not. + */ + public static bool Init (string aboutEntryPath, bool fromMenu) + { + string identifier, version; + + if( !GetField(aboutEntryPath, "version: ", out version) || !GetField(aboutEntryPath, "identifier: ", out identifier)) + return false; + + if(fromMenu || EditorPrefs.GetString(identifier) != version) + { + string tname; + + pg_AboutWindow win; + + if(!GetField(aboutEntryPath, "name: ", out tname) || !tname.Contains("ProGrids")) + return false; + + win = (pg_AboutWindow)EditorWindow.GetWindow(typeof(pg_AboutWindow), true, tname, true); + win.SetAboutEntryPath(aboutEntryPath); + win.ShowUtility(); + + EditorPrefs.SetString(identifier, version); + + return true; + } + else + { + return false; + } + } + + public void OnEnable() + { + banner = (Texture2D)AssetDatabase.LoadAssetAtPath(BannerPath, typeof(Texture2D)); + + // With Unity 4 (on PC) if you have different values for minSize and maxSize, + // they do not apply restrictions to window size. + this.minSize = new Vector2(banner.width + 12, banner.height * 7); + this.maxSize = new Vector2(banner.width + 12, banner.height * 7); + } + + public void SetAboutEntryPath(string path) + { + AboutEntryPath = path; + PopulateDataFields(AboutEntryPath); + } +#endregion + +#region GUI + + Color LinkColor = new Color(0f, .682f, .937f, 1f); + + GUIStyle boldTextStyle, + headerTextStyle, + linkTextStyle; + + GUIStyle advertisementStyle; + Vector2 scroll = Vector2.zero, adScroll = Vector2.zero; + // int mm = 32; + void OnGUI() + { + headerTextStyle = headerTextStyle ?? new GUIStyle( EditorStyles.boldLabel );//GUI.skin.label); + headerTextStyle.fontSize = 16; + + linkTextStyle = linkTextStyle ?? new GUIStyle( GUI.skin.label );//GUI.skin.label); + linkTextStyle.normal.textColor = LinkColor; + linkTextStyle.alignment = TextAnchor.MiddleLeft; + + boldTextStyle = boldTextStyle ?? new GUIStyle( GUI.skin.label );//GUI.skin.label); + boldTextStyle.fontStyle = FontStyle.Bold; + boldTextStyle.alignment = TextAnchor.MiddleLeft; + + // #if UNITY_4 + // richTextLabel.richText = true; + // #endif + + advertisementStyle = advertisementStyle ?? new GUIStyle(GUI.skin.button); + advertisementStyle.normal.background = null; + + if(banner != null) + GUILayout.Label(banner); + + // mm = EditorGUI.IntField(new Rect(Screen.width - 200, 100, 200, 18), "W: ", mm); + + { + GUILayout.Label("Thank you for purchasing " + ProductName + ". Your support allows us to keep developing this and future tools for everyone.", EditorStyles.wordWrappedLabel); + GUILayout.Space(2); + GUILayout.Label("Read these quick \"ProTips\" before starting:", headerTextStyle); + + GUILayout.BeginHorizontal(); + GUILayout.Label("1) ", GUILayout.MinWidth(16), GUILayout.MaxWidth(16)); + GUILayout.Label("Register", boldTextStyle, GUILayout.MinWidth(58), GUILayout.MaxWidth(58)); + GUILayout.Label("for instant email updates, send your invoice # to", GUILayout.MinWidth(284), GUILayout.MaxWidth(284)); + if( GUILayout.Button("contact@procore3d.com", linkTextStyle, GUILayout.MinWidth(142), GUILayout.MaxWidth(142)) ) + Application.OpenURL("mailto:contact@procore3d.com?subject=Sign me up for the Beta!"); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.Label("2) ", GUILayout.MinWidth(16), GUILayout.MaxWidth(16)); + GUILayout.Label("Report bugs", boldTextStyle, GUILayout.MinWidth(82), GUILayout.MaxWidth(82)); + GUILayout.Label("to the ProCore Forum at", GUILayout.MinWidth(144), GUILayout.MaxWidth(144)); + if( GUILayout.Button("www.procore3d.com/forum", linkTextStyle, GUILayout.MinWidth(162), GUILayout.MaxWidth(162)) ) + Application.OpenURL("http://www.procore3d.com/forum"); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.Label("3) ", GUILayout.MinWidth(16), GUILayout.MaxWidth(16)); + GUILayout.Label("Customize!", boldTextStyle, GUILayout.MinWidth(74), GUILayout.MaxWidth(74)); + GUILayout.Label("Click on \"Edit > Preferences\" then \"" + ProductName + "\"", GUILayout.MinWidth(276), GUILayout.MaxWidth(276)); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.Label("4) ", GUILayout.MinWidth(16), GUILayout.MaxWidth(16)); + GUILayout.Label("Documentation", boldTextStyle, GUILayout.MinWidth(102), GUILayout.MaxWidth(102)); + GUILayout.Label("Tutorials, & more info:", GUILayout.MinWidth(132), GUILayout.MaxWidth(132)); + if( GUILayout.Button("www.procore3d.com/" + ProductName.ToLower(), linkTextStyle, GUILayout.MinWidth(190), GUILayout.MaxWidth(190)) ) + Application.OpenURL("http://www.procore3d.com/" + ProductName.ToLower()); + GUILayout.EndHorizontal(); + + GUILayout.Space(4); + + GUILayout.BeginHorizontal(GUILayout.MaxWidth(50)); + + GUILayout.Label("Links:", boldTextStyle); + + linkTextStyle.fontStyle = FontStyle.Italic; + linkTextStyle.alignment = TextAnchor.MiddleCenter; + + if( GUILayout.Button("procore3d.com", linkTextStyle)) + Application.OpenURL("http://www.procore3d.com"); + + if( GUILayout.Button("facebook", linkTextStyle)) + Application.OpenURL("http://www.facebook.com/probuilder3d"); + + if( GUILayout.Button("twitter", linkTextStyle)) + Application.OpenURL("http://www.twitter.com/probuilder3d"); + + linkTextStyle.fontStyle = FontStyle.Normal; + GUILayout.EndHorizontal(); + + GUILayout.Space(4); + } + + HorizontalLine(); + + // always bold the first line (cause it's the version info stuff) + scroll = EditorGUILayout.BeginScrollView(scroll); + GUILayout.Label(ProductName + " | version: " + ProductVersion, EditorStyles.boldLabel); + GUILayout.Label("\n" + changelog); + EditorGUILayout.EndScrollView(); + + HorizontalLine(); + + GUILayout.Label("More ProCore Products", EditorStyles.boldLabel); + + int pad = advertisements.Length * AD_HEIGHT > Screen.width ? 22 : 6; + adScroll = EditorGUILayout.BeginScrollView(adScroll, false, false, GUILayout.MinHeight(AD_HEIGHT + pad), GUILayout.MaxHeight(AD_HEIGHT + pad)); + GUILayout.BeginHorizontal(); + + foreach(AdvertisementThumb ad in advertisements) + { + if(ad.url.ToLower().Contains(ProductName.ToLower())) + continue; + + if(GUILayout.Button(ad.guiContent, advertisementStyle, + GUILayout.MinWidth(AD_HEIGHT), GUILayout.MaxWidth(AD_HEIGHT), + GUILayout.MinHeight(AD_HEIGHT), GUILayout.MaxHeight(AD_HEIGHT))) + { + Application.OpenURL(ad.url); + } + } + GUILayout.EndHorizontal(); + EditorGUILayout.EndScrollView(); + /* shill other products */ + } + + /** + * Draw a horizontal line across the screen and update the guilayout. + */ + void HorizontalLine() + { + Rect r = GUILayoutUtility.GetLastRect(); + Color og = GUI.backgroundColor; + GUI.backgroundColor = Color.black; + GUI.Box(new Rect(0f, r.y + r.height + 2, Screen.width, 2f), ""); + GUI.backgroundColor = og; + + GUILayout.Space(6); + } +#endregion + +#region Data Parsing + + /* rich text ain't wuurkin' in unity 3.5 */ + const string RemoveBraketsRegex = "(\\<.*?\\>)"; + + /** + * Open VersionInfo and Changelog and pull out text to populate vars for OnGUI to display. + */ + void PopulateDataFields(string entryPath) + { + /* Get data from VersionInfo.txt */ + TextAsset versionInfo = (TextAsset)AssetDatabase.LoadAssetAtPath( entryPath, typeof(TextAsset)); + + ProductName = ""; + // ProductIdentifer = ""; + ProductVersion = ""; + ChangelogPath = ""; + + if(versionInfo != null) + { + string[] txt = versionInfo.text.Split('\n'); + foreach(string cheese in txt) + { + if(cheese.StartsWith("name:")) + ProductName = cheese.Replace("name: ", "").Trim(); + else + if(cheese.StartsWith("version:")) + ProductVersion = cheese.Replace("version: ", "").Trim(); + else + if(cheese.StartsWith("changelog:")) + ChangelogPath = cheese.Replace("changelog: ", "").Trim(); + } + } + + // notes = notes.Trim(); + + /* Get first entry in changelog.txt */ + TextAsset changelogText = (TextAsset)AssetDatabase.LoadAssetAtPath( ChangelogPath, typeof(TextAsset)); + + if(changelogText) + { + string[] split = changelogText.text.Split( new string[] {"--"}, System.StringSplitOptions.RemoveEmptyEntries ); + StringBuilder sb = new StringBuilder(); + string[] newLineSplit = split[0].Trim().Split('\n'); + for(int i = 2; i < newLineSplit.Length; i++) + sb.AppendLine(newLineSplit[i]); + + changelog = sb.ToString(); + } + } + + private static bool GetField(string path, string field, out string value) + { + TextAsset entry = (TextAsset)AssetDatabase.LoadAssetAtPath(path, typeof(TextAsset)); + value = ""; + + if(!entry) return false; + + foreach(string str in entry.text.Split('\n')) + { + if(str.Contains(field)) + { + value = str.Replace(field, "").Trim(); + return true; + } + } + + return false; + } +#endregion +} diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Editor/pg_AboutWindow.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Editor/pg_AboutWindow.cs.meta new file mode 100644 index 0000000..f0d7a91 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Editor/pg_AboutWindow.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 397122f2e7afcb643bc5232d77a09e1c +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Images.meta new file mode 100644 index 0000000..f487ebe --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a05c2964f6d8b63468de25353d1cc206 +folderAsset: yes +timeCreated: 1518451281 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Banner.png b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Banner.png new file mode 100644 index 0000000..bb15a1a --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Banner.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6817b80c1145edb46513196309522893aa5f2aa98efb5f7121d61fa78f99a4e4 +size 42005 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Banner.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Banner.png.meta new file mode 100644 index 0000000..3567388 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Banner.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: ceb16aa47d35e7d429e76f5962a66b48 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 5 + maxTextureSize: 512 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProBuilder_AssetStore_Icon_96px.png b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProBuilder_AssetStore_Icon_96px.png new file mode 100644 index 0000000..182988c --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProBuilder_AssetStore_Icon_96px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4bee04ce09cc08be6521c45cda7ed8758cf1c18b7b581a831b9df511ea18a7b +size 23746 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProBuilder_AssetStore_Icon_96px.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProBuilder_AssetStore_Icon_96px.png.meta new file mode 100644 index 0000000..1347a30 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProBuilder_AssetStore_Icon_96px.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: abd41419a644ca64e9f2c0342c808cbb +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 5 + maxTextureSize: 512 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGrids_AssetStore_Icon_96px.png b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGrids_AssetStore_Icon_96px.png new file mode 100644 index 0000000..57971f9 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGrids_AssetStore_Icon_96px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:420b92dda30b3d23946c0d9dab6ad654ca8b1149d33eac4cc7bc84075e7d7dc0 +size 22290 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGrids_AssetStore_Icon_96px.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGrids_AssetStore_Icon_96px.png.meta new file mode 100644 index 0000000..c641c77 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGrids_AssetStore_Icon_96px.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 6b05b1effd90efd488ffb0f5aa8c78e1 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 5 + maxTextureSize: 512 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGroups_AssetStore_Icon_96px.png b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGroups_AssetStore_Icon_96px.png new file mode 100644 index 0000000..fdeb0b8 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGroups_AssetStore_Icon_96px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70531264c5c0564abcc6578d1086790aad5f74154b67952eed555929f67dec2e +size 18643 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGroups_AssetStore_Icon_96px.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGroups_AssetStore_Icon_96px.png.meta new file mode 100644 index 0000000..f5ea1ff --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/ProGroups_AssetStore_Icon_96px.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 16e30887c69dad541aee23ecc68a4ccb +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 5 + maxTextureSize: 512 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Prototype_AssetStore_Icon_96px.png b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Prototype_AssetStore_Icon_96px.png new file mode 100644 index 0000000..0901274 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Prototype_AssetStore_Icon_96px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99530ae3324d8f5d001b83a68b58e489f8707c4638eb50a502dd8d35de83d5ce +size 21884 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Prototype_AssetStore_Icon_96px.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Prototype_AssetStore_Icon_96px.png.meta new file mode 100644 index 0000000..98ee14a --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/Prototype_AssetStore_Icon_96px.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: e935b69bdc65eff47be27ce3af1bffa3 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 5 + maxTextureSize: 512 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickBrush_AssetStore_Icon_96px.png b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickBrush_AssetStore_Icon_96px.png new file mode 100644 index 0000000..251cddb --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickBrush_AssetStore_Icon_96px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d166b4b539a23b7fbc2b04f984b6d25d0de8a1da73c6991c527693d75ba213aa +size 19700 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickBrush_AssetStore_Icon_96px.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickBrush_AssetStore_Icon_96px.png.meta new file mode 100644 index 0000000..0789741 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickBrush_AssetStore_Icon_96px.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 6da2ca1eb48c9e445bef0c33ec1cb791 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 5 + maxTextureSize: 512 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickDecals_AssetStore_Icon_96px.png b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickDecals_AssetStore_Icon_96px.png new file mode 100644 index 0000000..3439546 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickDecals_AssetStore_Icon_96px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cab3759e048ccc1fd099a120f7e124bb4901f0255ca186ab703b431047be82ff +size 22370 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickDecals_AssetStore_Icon_96px.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickDecals_AssetStore_Icon_96px.png.meta new file mode 100644 index 0000000..2c1b073 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickDecals_AssetStore_Icon_96px.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 5703a8cad7300b14f8185c946e3831df +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 5 + maxTextureSize: 512 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickEdit_AssetStore_Icon_96px.png b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickEdit_AssetStore_Icon_96px.png new file mode 100644 index 0000000..a279f23 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickEdit_AssetStore_Icon_96px.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f3be2b933b716c49a3a5452a8cfdf42401f95339d32059700500822c30c6c3b +size 21433 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickEdit_AssetStore_Icon_96px.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickEdit_AssetStore_Icon_96px.png.meta new file mode 100644 index 0000000..d9b2616 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/Images/QuickEdit_AssetStore_Icon_96px.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 1dd6a7e769dca5a4a908f2a4abdadc68 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 5 + maxTextureSize: 512 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/changelog.txt b/Assets/Third Party Assets/ProCore/ProGrids/About/changelog.txt new file mode 100644 index 0000000..0da175b --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/changelog.txt @@ -0,0 +1,156 @@ +-- ProGrids 2.5.0f0 - + +# Features + - Single key shortcuts now configurable via preferences. + +# Bug Fixes + - Don't prevent compiling to Windows Store target. + - Single key shortcuts no long beep on Mac. + - Fix null reference error if GameObject has a null component. + +-- ProGrids 2.4.1f0 - + +# Bug Fixes + - Prevent About Window from opening other tool changelogs. + +-- ProGrids 2.4.0f0 - + +# Features + - Add `pg_IgnoreSnapAttribute` and `ProGridsConditionalSnapAttribute` to disable or conditionally disable snapping on objects. + - Increase accessible grid multiplier range. + +# Bug Fixes + - Fix sRGB import settings on icons. + - Prevert overflow when increasing grid multiplier. + +-- ProGrids 2.3.0f0 - + +# Features + - Add option to set major line increment. + - Automatically hide and show the Unity grid when opening / closing ProGrids. + +# Bug Fixes + - Fix bug where ProGrids could fail to find icons when root folder is moved. + - Fix bug where ProGrids would not remember it's state between Unity sessions. + +# Changes + - Slightly increase opacity of default grid colors. + +-- ProGrids 2.2.7f0 - + +# Bug Fixes + - Fix cases where `Snap on Selected Axes` would sometimes be unset. + +-- ProGrids 2.2.6f0 - + +# Bug Fixes + - Fix warnings in Unity 5.4 regarding API use during serialization. + +-- ProGrids 2.2.5f0 - + +# Bug Fixes + - Fix an issue where ProGrids would not stay open across Unity restarts. + +-- ProGrids 2.2.4f0 - + +# Bug Fixes + - Fix issue where adjusting grid offset would not repaint grid. + - Attempt to load GUI resources on deserialization, possibly addressing issues with menu icons not loading. + +-- ProGrids 2.2.3f0 - + +# Bug Fixes + - If icons aren't found, search the project for matching images (allows user to rename or move ProGrids folder). + - Make menu usable even if icons aren't found in project. + - Fix bug where grid would fail to render on Mac. + - Improve performance of grid rendering and increase draw distance. + +-- ProGrids 2.2.2f0 - + +# Bug Fixes + - Fix possible leak in pg_GridRenderer. + - Fix 10th line highlight being lost on script reload. + - Remember open/closed state between Unity loads. + - Fix bug where multiple ProGrids instances could potentially be instantiated. + +-- ProGrids 2.2.1f0 - + +# Features + - New interface jettisons bulky Editor Window in favor of a minimal dropdown in the active sceneview. + - New "Predictive Grid" option will automatically change the grid plane to best match the current movement. + - Add option to snap all selected objects independently of on another (toggle off "Snap as Group"). + +# Bug Fixes + - Improve support for multiple open scene view windows. + - Respect local rotation when calculating snap value. + +-- ProGrids 2.1.7f0 - + +# Features + - Add preference to enabled snapping scale values. + +-- ProGrids 2.1.6p2 - + +# Features + - Unity 5 compatibility. + +# Patch 1 + - Add documentation PDF. + +# Patch 2 + - Fix Upgradable API warning. + - Fix version marking in About. + +-- ProGrids 2.1.5 - + +# Bug Fixes + - Fix crash on OSX in Unity 5. + - Remember grid position when closing and re-opening ProGrids. + - Grid lines no longer render on top of geometry in Deferred Rendering. + - Improve performance of Editor when rendering perspective grids. + +-- ProGrids 2.1.4 - + +# Bug Fixes + - Remember On/Off state when closing window. + - ProBuilder now respects temporary snapping disable toggle. + - ProBuilder now respects temporary axis constraint toggles. + - Snap value resolution now retained when using -/+ keys to increase or decrease size. + +# Changes + - Remove deprecated SixBySeven.dll. + - Remove unused font from Resources folder. + +-- ProGrids 2.1.3 - + +# Bug Fixes + - Catch instance where GridRenderer would not detect Deferred Rendering path, causing grid to appear black and spotty. + - Remember grid show/hide preferences across Unity launches. + +-- ProGrids 2.1.2 - + +# Bug Fixes + - Fix missing grid when using Deferred Rendering path. + - Fix conflicting shortcut for toggle axis constraints. + +-- ProGrids 2.1.1 - + +# Features + - New perspective plane grids. + - New perspective 3d grid. + - Redesigned interface + - New `[` and `]` shortcuts decrease and increase grid resolution. + - New `-` and `+` shortcuts move 3d plane grid forwards and backwards along axis. + - New `\` shortcut key to toggle between orthographic axis and perspective modes. + - Improve orthographic grid rendering performance. + - Highlight every 10th line. + - New preference toggles use of Axis Constraints while dragging objects (use 'C' key to invert preference on the fly). + - Shiny new About window. + +# Bug Fixes + - Update grid in real time while modifying preferences. + - Catch a rare divide by zero exception on Unity 3. + +# Changes + - Move ProGrids from 6by7 folder to ProCore. + - Use new `ProCore.dll` library instead of `SixBySeven.dll`. diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/changelog.txt.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/changelog.txt.meta new file mode 100644 index 0000000..5fe1eeb --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/changelog.txt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0ed9527ca682a804198b6fc47623896c +timeCreated: 18446744011573954816 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/pc_AboutEntry_ProGrids.txt b/Assets/Third Party Assets/ProCore/ProGrids/About/pc_AboutEntry_ProGrids.txt new file mode 100644 index 0000000..c688e97 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/pc_AboutEntry_ProGrids.txt @@ -0,0 +1,5 @@ +name: ProGrids +identifier: ProGrids2_AboutWindowIdentifier +version: 2.5.0f0 +date: 8-3-2017 +changelog: Assets/ProCore/ProGrids/About/changelog.txt diff --git a/Assets/Third Party Assets/ProCore/ProGrids/About/pc_AboutEntry_ProGrids.txt.meta b/Assets/Third Party Assets/ProCore/ProGrids/About/pc_AboutEntry_ProGrids.txt.meta new file mode 100644 index 0000000..a058b14 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/About/pc_AboutEntry_ProGrids.txt.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6a245335660a4654f8bee9ca0cbf5f36 +timeCreated: 18446744011573954816 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes.meta b/Assets/Third Party Assets/ProCore/ProGrids/Classes.meta new file mode 100644 index 0000000..e4f78ab --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 2102937ec2f1e75418236fac598f9798 +folderAsset: yes +timeCreated: 1518451281 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Constant.cs b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Constant.cs new file mode 100644 index 0000000..a6a5390 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Constant.cs @@ -0,0 +1,41 @@ +#define PRO + +using UnityEngine; +using System.Collections; + +namespace ProGrids +{ + public static class pg_Constant + { + public const string ProGridsIsEnabled = "pgProGridsIsEnabled"; + public const string ProGridsIsExtended = "pgProGridsIsExtended"; + public const string ProGridsUpgradeURL = "http://u3d.as/content/six-by-seven-studio/pro-grids/3ov"; + public const string SnapValue = "pgSnapValue"; + public const string SnapMultiplier = "pgSnapMultiplier"; + public const string SnapEnabled = "pgSnapEnabled"; + public const string UseAxisConstraints = "pgUseAxisConstraints"; + public const string LastOrthoToggledRotation = "pgLastOrthoToggledRotation"; + public const string BracketIncreaseValue = "pgBracketIncreaseValue"; + public const string GridUnit = "pg_GridUnit"; + public const string LockGrid = "pg_LockGrid"; + public const string LockedGridPivot = "pg_LockedGridPivot"; + public const string PGVersion = "pg_Version"; + public const string GridAxis = "pg_GridAxis"; + public const string PerspGrid = "pg_PerspGrid"; + public const string SnapScale = "pg_SnapOnScale"; + public const string PredictiveGrid = "pg_PredictiveGrid"; + public const string SnapAsGroup = "pg_SnapAsGroup"; + public const string MajorLineIncrement = "pg_MajorLineIncrement"; + public const string SyncUnitySnap = "pg_SyncUnitySnap"; + + public const float METER = 1f; + #if PRO + public const float CENTIMETER = .01f; + public const float MILLIMETER = .001f; + public const float INCH = 0.0253999862840074f; + public const float FOOT = 0.3048f; + public const float YARD = 1.09361f; + public const float PARSEC = 5f; + #endif + } +} diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Constant.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Constant.cs.meta new file mode 100644 index 0000000..a7003c4 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Constant.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8b2cff15c28de0f4ba38eafc29cd64fa +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Enum.cs b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Enum.cs new file mode 100644 index 0000000..c099b97 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Enum.cs @@ -0,0 +1,102 @@ +#define PRO + +using UnityEngine; +using System.Collections; + +namespace ProGrids +{ + public enum Axis { + None = 0x0, + X = 0x1, + Y = 0x2, + Z = 0x4, + NegX = 0x8, + NegY = 0x16, + NegZ = 0x32 + } + + public enum SnapUnit { + Meter, + #if PRO + Centimeter, + Millimeter, + Inch, + Foot, + Yard, + Parsec + #endif + } + + public static class pg_Enum + { + /** + * Multiplies a Vector3 using the inverse value of an axis (eg, Axis.Y becomes Vector3(1, 0, 1) ) + */ + public static Vector3 InverseAxisMask(Vector3 v, Axis axis) + { + switch(axis) + { + case Axis.X: + case Axis.NegX: + return Vector3.Scale(v, new Vector3(0f, 1f, 1f)); + + case Axis.Y: + case Axis.NegY: + return Vector3.Scale(v, new Vector3(1f, 0f, 1f)); + + case Axis.Z: + case Axis.NegZ: + return Vector3.Scale(v, new Vector3(1f, 1f, 0f)); + + default: + return v; + } + } + + public static Vector3 AxisMask(Vector3 v, Axis axis) + { + switch(axis) + { + case Axis.X: + case Axis.NegX: + return Vector3.Scale(v, new Vector3(1f, 0f, 0f)); + + case Axis.Y: + case Axis.NegY: + return Vector3.Scale(v, new Vector3(0f, 1f, 0f)); + + case Axis.Z: + case Axis.NegZ: + return Vector3.Scale(v, new Vector3(0f, 0f, 1f)); + + default: + return v; + } + } + + public static float SnapUnitValue(SnapUnit su) + { + switch(su) + { + case SnapUnit.Meter: + return pg_Constant.METER; +#if PRO + case SnapUnit.Centimeter: + return pg_Constant.CENTIMETER; + case SnapUnit.Millimeter: + return pg_Constant.MILLIMETER; + case SnapUnit.Inch: + return pg_Constant.INCH; + case SnapUnit.Foot: + return pg_Constant.FOOT; + case SnapUnit.Yard: + return pg_Constant.YARD; + case SnapUnit.Parsec: + return pg_Constant.PARSEC; +#endif + default: + return pg_Constant.METER; + } + } + } +} \ No newline at end of file diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Enum.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Enum.cs.meta new file mode 100644 index 0000000..088869e --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Enum.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d3b407d7cf143004f8e7f9de0969d275 +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IconUtility.cs b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IconUtility.cs new file mode 100644 index 0000000..e79f0e7 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IconUtility.cs @@ -0,0 +1,71 @@ +#if UNITY_EDITOR +using UnityEngine; +using UnityEditor; +using System; +using System.IO; +using System.Collections.Generic; + +namespace ProGrids +{ + [InitializeOnLoad] + public static class pg_IconUtility + { + const string ICON_FOLDER_PATH = "ProGridsToggles"; + private static string iconFolderPath = "Assets/ProCore/ProGrids/GUI/ProGridsToggles/"; + + static pg_IconUtility() + { + if(!Directory.Exists(iconFolderPath)) + { + string folder = FindFolder(ICON_FOLDER_PATH); + + if(Directory.Exists(folder)) + iconFolderPath = folder; + } + } + + private static string FindFolder(string folder) + { +#if !UNITY_WEBPLAYER + string single = folder.Replace("\\", "/").Substring(folder.LastIndexOf('/') + 1); + + string[] matches = Directory.GetDirectories("Assets/", single, SearchOption.AllDirectories); + + foreach(string str in matches) + { + string path = str.Replace("\\", "/"); + + if(path.Contains(folder)) + { + if(!path.EndsWith("/")) + path += "/"; + + return path; + } + } +#endif + Debug.LogError("Could not locate ProGrids/GUI/ProGridsToggles folder. The ProGrids folder may be moved, but the contents of ProGrids must remain unmodified."); + + return ""; + } + + public static Texture2D LoadIcon(string iconName) + { + string iconPath = string.Format("{0}{1}", iconFolderPath, iconName); + + if(!File.Exists(iconPath)) + { + Debug.LogError("ProGrids failed to locate menu image: " + iconName + ".\nThis can happen if the GUI folder is moved or deleted. Deleting and re-importing ProGrids will fix this error."); + return (Texture2D) null; + } + + return LoadAssetAtPath(iconPath); + } + + static T LoadAssetAtPath(string path) where T : UnityEngine.Object + { + return (T) AssetDatabase.LoadAssetAtPath(path, typeof(T)); + } + } +} +#endif diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IconUtility.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IconUtility.cs.meta new file mode 100644 index 0000000..0edcf07 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IconUtility.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 192dd82c3ebd3b647ae292174a2f36a6 +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IgnoreSnapAttribute.cs b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IgnoreSnapAttribute.cs new file mode 100644 index 0000000..1eeedb4 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IgnoreSnapAttribute.cs @@ -0,0 +1,23 @@ +using UnityEngine; +using System; + +namespace ProGrids +{ + /** + * ProGridsNoSnapAttribute tells ProGrids to skip snapping on this object. + * Note - On Unity versions less than 5.2 this will not take effect until after a script + * reload. + */ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] + public class ProGridsNoSnapAttribute : Attribute + { + } + + /** + * ProGridsConditionalSnapAttribute tells ProGrids to check `bool IsSnapEnabled()` function on this object. + */ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] + public class ProGridsConditionalSnapAttribute : Attribute + { + } +} diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IgnoreSnapAttribute.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IgnoreSnapAttribute.cs.meta new file mode 100644 index 0000000..607fb37 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_IgnoreSnapAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a00a369d82c4f7f47ae4dc5c2be474b8 +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_SceneMeshRender.cs b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_SceneMeshRender.cs new file mode 100644 index 0000000..af6e5be --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_SceneMeshRender.cs @@ -0,0 +1,47 @@ +#if UNITY_EDITOR +using UnityEngine; +using UnityEditor; +using System.Linq; +using System.Collections; + +/** + * Despite the MonoBehaviour inheritance, this is an Editor-only script. + */ +[ExecuteInEditMode] +public class pg_SceneMeshRender : MonoBehaviour +{ + // HideFlags.DontSaveInEditor isn't exposed for whatever reason, so do the bit math on ints + // and just cast to HideFlags. + // HideFlags.HideInHierarchy | HideFlags.DontSaveInEditor | HideFlags.NotEditable + HideFlags SceneCameraHideFlags = (HideFlags) (1 | 4 | 8); + + public Mesh mesh; + public Material material; + + void OnDestroy() + { + if(mesh) DestroyImmediate(mesh); + if(material) DestroyImmediate(material); + } + + void OnRenderObject() + { + // instead of relying on 'SceneCamera' string comparison, check if the hideflags match. + // this could probably even just check for one bit match, since chances are that any + // game view camera isn't going to have hideflags set. + if( (Camera.current.gameObject.hideFlags & SceneCameraHideFlags) != SceneCameraHideFlags || Camera.current.name != "SceneCamera" ) + return; + + if(material == null || mesh == null) + { + + GameObject.DestroyImmediate(this.gameObject); + // Debug.Log("NULL MESH || MATERIAL"); + return; + } + + material.SetPass(0); + Graphics.DrawMeshNow(mesh, Vector3.zero, Quaternion.identity, 0); + } +} +#endif diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_SceneMeshRender.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_SceneMeshRender.cs.meta new file mode 100644 index 0000000..b1dedb4 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_SceneMeshRender.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bb0712ebbf8b03f46a1c36447cee2893 +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Util.cs b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Util.cs new file mode 100644 index 0000000..3bce0c9 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Util.cs @@ -0,0 +1,369 @@ +#if UNITY_EDITOR || !(UNITY_WP_8_1 || UNITY_WSA || UNITY_WSA_8_1 || UNITY_WSA_10_0 || UNITY_WINRT || UNITY_WINRT_8_1 || UNITY_WINRT_10_0) + +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using System; +using System.Linq; +using System.Reflection; + +namespace ProGrids +{ + public static class pg_Util + { + public static Color ColorWithString(string value) + { + string valid = "01234567890.,"; + value = new string(value.Where(c => valid.Contains(c)).ToArray()); + string[] rgba = value.Split(','); + + // BRIGHT pink + if(rgba.Length < 4) + return new Color(1f, 0f, 1f, 1f); + + return new Color( + float.Parse(rgba[0]), + float.Parse(rgba[1]), + float.Parse(rgba[2]), + float.Parse(rgba[3])); + } + + private static Vector3 VectorToMask(Vector3 vec) + { + return new Vector3( Mathf.Abs(vec.x) > Mathf.Epsilon ? 1f : 0f, + Mathf.Abs(vec.y) > Mathf.Epsilon ? 1f : 0f, + Mathf.Abs(vec.z) > Mathf.Epsilon ? 1f : 0f ); + } + + private static Axis MaskToAxis(Vector3 vec) + { + Axis axis = Axis.None; + if( Mathf.Abs(vec.x) > 0 ) axis |= Axis.X; + if( Mathf.Abs(vec.y) > 0 ) axis |= Axis.Y; + if( Mathf.Abs(vec.z) > 0 ) axis |= Axis.Z; + return axis; + } + + private static Axis BestAxis(Vector3 vec) + { + float x = Mathf.Abs(vec.x); + float y = Mathf.Abs(vec.y); + float z = Mathf.Abs(vec.z); + + return (x > y && x > z) ? Axis.X : ((y > x && y > z) ? Axis.Y : Axis.Z); + } + + public static Axis CalcDragAxis(Vector3 movement, Camera cam) + { + Vector3 mask = VectorToMask(movement); + + if(mask.x + mask.y + mask.z == 2) + { + return MaskToAxis(Vector3.one - mask); + } + else + { + switch( MaskToAxis(mask) ) + { + case Axis.X: + if( Mathf.Abs(Vector3.Dot(cam.transform.forward, Vector3.up)) < Mathf.Abs(Vector3.Dot(cam.transform.forward, Vector3.forward))) + return Axis.Z; + else + return Axis.Y; + + case Axis.Y: + if( Mathf.Abs(Vector3.Dot(cam.transform.forward, Vector3.right)) < Mathf.Abs(Vector3.Dot(cam.transform.forward, Vector3.forward))) + return Axis.Z; + else + return Axis.X; + + case Axis.Z: + if( Mathf.Abs(Vector3.Dot(cam.transform.forward, Vector3.right)) < Mathf.Abs(Vector3.Dot(cam.transform.forward, Vector3.up))) + return Axis.Y; + else + return Axis.X; + default: + + return Axis.None; + } + } + } + + public static float ValueFromMask(Vector3 val, Vector3 mask) + { + if(Mathf.Abs(mask.x) > .0001f) + return val.x; + else if(Mathf.Abs(mask.y) > .0001f) + return val.y; + else + return val.z; + } + + public static Vector3 SnapValue(Vector3 val, float snapValue) + { + float _x = val.x, _y = val.y, _z = val.z; + return new Vector3( + Snap(_x, snapValue), + Snap(_y, snapValue), + Snap(_z, snapValue) + ); + } + + /** + * Fetch a type with name and optional assembly name. `type` should include namespace. + */ + private static Type GetType(string type, string assembly = null) + { + Type t = Type.GetType(type); + + if(t == null) + { + IEnumerable assemblies = AppDomain.CurrentDomain.GetAssemblies(); + + if(assembly != null) + assemblies = assemblies.Where(x => x.FullName.Contains(assembly)); + + foreach(Assembly ass in assemblies) + { + t = ass.GetType(type); + + if(t != null) + return t; + } + } + + return t; + } + + public static void SetUnityGridEnabled(bool isEnabled) + { + try + { + Type annotationUtility = GetType("UnityEditor.AnnotationUtility"); + PropertyInfo pi = annotationUtility.GetProperty("showGrid", BindingFlags.NonPublic | BindingFlags.Static); + pi.SetValue(null, isEnabled, BindingFlags.NonPublic | BindingFlags.Static, null, null, null); + } + catch + {} + } + + public static bool GetUnityGridEnabled() + { + try + { + Type annotationUtility = GetType("UnityEditor.AnnotationUtility"); + PropertyInfo pi = annotationUtility.GetProperty("showGrid", BindingFlags.NonPublic | BindingFlags.Static); + return (bool) pi.GetValue(null, null); + } + catch + {} + + return false; + } + + const float EPSILON = .0001f; + public static Vector3 SnapValue(Vector3 val, Vector3 mask, float snapValue) + { + + float _x = val.x, _y = val.y, _z = val.z; + return new Vector3( + ( Mathf.Abs(mask.x) < EPSILON ? _x : Snap(_x, snapValue) ), + ( Mathf.Abs(mask.y) < EPSILON ? _y : Snap(_y, snapValue) ), + ( Mathf.Abs(mask.z) < EPSILON ? _z : Snap(_z, snapValue) ) + ); + } + + public static Vector3 SnapToCeil(Vector3 val, Vector3 mask, float snapValue) + { + float _x = val.x, _y = val.y, _z = val.z; + return new Vector3( + ( Mathf.Abs(mask.x) < EPSILON ? _x : SnapToCeil(_x, snapValue) ), + ( Mathf.Abs(mask.y) < EPSILON ? _y : SnapToCeil(_y, snapValue) ), + ( Mathf.Abs(mask.z) < EPSILON ? _z : SnapToCeil(_z, snapValue) ) + ); + } + + public static Vector3 SnapToFloor(Vector3 val, float snapValue) + { + float _x = val.x, _y = val.y, _z = val.z; + return new Vector3( + SnapToFloor(_x, snapValue), + SnapToFloor(_y, snapValue), + SnapToFloor(_z, snapValue) + ); + } + + public static Vector3 SnapToFloor(Vector3 val, Vector3 mask, float snapValue) + { + float _x = val.x, _y = val.y, _z = val.z; + return new Vector3( + ( Mathf.Abs(mask.x) < EPSILON ? _x : SnapToFloor(_x, snapValue) ), + ( Mathf.Abs(mask.y) < EPSILON ? _y : SnapToFloor(_y, snapValue) ), + ( Mathf.Abs(mask.z) < EPSILON ? _z : SnapToFloor(_z, snapValue) ) + ); + } + + public static float Snap(float val, float round) + { + return round * Mathf.Round(val / round); + } + + public static float SnapToFloor(float val, float snapValue) + { + return snapValue * Mathf.Floor(val / snapValue); + } + + public static float SnapToCeil(float val, float snapValue) + { + return snapValue * Mathf.Ceil(val / snapValue); + } + + public static Vector3 CeilFloor(Vector3 v) + { + v.x = v.x < 0 ? -1 : 1; + v.y = v.y < 0 ? -1 : 1; + v.z = v.z < 0 ? -1 : 1; + + return v; + } + + abstract class SnapEnabledOverride + { + public abstract bool IsEnabled(); + } + + class SnapIsEnabledOverride : SnapEnabledOverride + { + bool m_SnapIsEnabled; + + public SnapIsEnabledOverride(bool snapIsEnabled) + { + m_SnapIsEnabled = snapIsEnabled; + } + + public override bool IsEnabled() { return m_SnapIsEnabled; } + } + + class ConditionalSnapOverride : SnapEnabledOverride + { + public System.Func m_IsEnabledDelegate; + + public ConditionalSnapOverride(System.Func d) + { + m_IsEnabledDelegate = d; + } + + public override bool IsEnabled() { return m_IsEnabledDelegate(); } + } + + private static Dictionary m_SnapOverrideCache = new Dictionary(); + private static Dictionary m_NoSnapAttributeTypeCache = new Dictionary(); + private static Dictionary m_ConditionalSnapAttributeCache = new Dictionary(); + + public static void ClearSnapEnabledCache() + { + m_SnapOverrideCache.Clear(); + } + + public static bool SnapIsEnabled(Transform t) + { + SnapEnabledOverride so; + + if(m_SnapOverrideCache.TryGetValue(t, out so)) + return so.IsEnabled(); + + object[] attribs = null; + + foreach(Component c in t.GetComponents()) + { + if(c == null) + continue; + + Type type = c.GetType(); + + bool hasNoSnapAttrib; + + if(m_NoSnapAttributeTypeCache.TryGetValue(type, out hasNoSnapAttrib)) + { + if(hasNoSnapAttrib) + { + m_SnapOverrideCache.Add(t, new SnapIsEnabledOverride(!hasNoSnapAttrib)); + return true; + } + } + else + { + attribs = type.GetCustomAttributes(true); + hasNoSnapAttrib = attribs.Any(x => x != null && x.ToString().Contains("ProGridsNoSnap")); + m_NoSnapAttributeTypeCache.Add(type, hasNoSnapAttrib); + + if(hasNoSnapAttrib) + { + m_SnapOverrideCache.Add(t, new SnapIsEnabledOverride(!hasNoSnapAttrib)); + return true; + } + } + + MethodInfo mi; + + if(m_ConditionalSnapAttributeCache.TryGetValue(type, out mi)) + { + if(mi != null) + { + m_SnapOverrideCache.Add(t, new ConditionalSnapOverride(() => { return (bool) mi.Invoke(c, null); })); + return (bool) mi.Invoke(c, null); + } + } + else + { + if( attribs.Any(x => x != null && x.ToString().Contains("ProGridsConditionalSnap")) ) + { + mi = type.GetMethod("IsSnapEnabled", BindingFlags.Instance | BindingFlags.FlattenHierarchy | BindingFlags.NonPublic | BindingFlags.Public); + + m_ConditionalSnapAttributeCache.Add(type, mi); + + if(mi != null) + { + m_SnapOverrideCache.Add(t, new ConditionalSnapOverride(() => { return (bool) mi.Invoke(c, null); })); + return (bool) mi.Invoke(c, null); + } + } + else + { + m_ConditionalSnapAttributeCache.Add(type, null); + } + } + } + + m_SnapOverrideCache.Add(t, new SnapIsEnabledOverride(true)); + + return true; + } + } + + public static class PGExtensions + { + public static bool Contains(this Transform[] t_arr, Transform t) + { + for(int i = 0; i < t_arr.Length; i++) + if(t_arr[i] == t) + return true; + return false; + } + + public static float Sum(this Vector3 v) + { + return v[0] + v[1] + v[2]; + } + + public static bool InFrustum(this Camera cam, Vector3 point) + { + Vector3 p = cam.WorldToViewportPoint(point); + return (p.x >= 0f && p.x <= 1f) && + (p.y >= 0f && p.y <= 1f) && + p.z >= 0f; + } + } + +} +#endif diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Util.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Util.cs.meta new file mode 100644 index 0000000..9730b4c --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Classes/pg_Util.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8e12ec5ca21bb5842aa4a54b18874a11 +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor.meta b/Assets/Third Party Assets/ProCore/ProGrids/Editor.meta new file mode 100644 index 0000000..64caa7b --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7e7089ffb8ce16f48a7ab8eb8e090929 +folderAsset: yes +timeCreated: 1518451281 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Editor.cs b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Editor.cs new file mode 100644 index 0000000..163b5ba --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Editor.cs @@ -0,0 +1,1670 @@ +/** + * 7/8/2013 + */ +#define PRO + +using UnityEngine; +using UnityEditor; +using System.Collections.Generic; +using System.Reflection; +using System; +using System.Linq; + +namespace ProGrids +{ + [InitializeOnLoad] + public static class pg_Initializer + { + /** + * When opening Unity, remember whether or not ProGrids was open when Unity was shut down last. + */ + static pg_Initializer() + { + if (EditorPrefs.GetBool(pg_Constant.ProGridsIsEnabled)) + { + if (pg_Editor.instance == null) + pg_Editor.InitProGrids(); + else + EditorApplication.delayCall += pg_Editor.instance.Initialize; + } + } + } + + public class pg_Editor : ScriptableObject, ISerializationCallbackReceiver + { + + #region MEMBERS + + public static pg_Editor instance + { + get + { + if (_instance == null) + { + pg_Editor[] editor = Resources.FindObjectsOfTypeAll(); + + if (editor != null && editor.Length > 0) + { + _instance = editor[0]; + + for (int i = 1; i < editor.Length; i++) + { + GameObject.DestroyImmediate(editor[i]); + } + } + } + + return _instance; + } + + set + { + _instance = value; + } + } + private static pg_Editor _instance; + + Color oldColor; + + private bool useAxisConstraints + { + get { return EditorPrefs.GetBool(pg_Constant.UseAxisConstraints); } + set { EditorPrefs.SetBool(pg_Constant.UseAxisConstraints, value); } + } + + [SerializeField] + private bool snapEnabled = true; + [SerializeField] + private SnapUnit snapUnit = SnapUnit.Meter; +#if PRO + private float snapValue = 1f; // the actual snap value, taking into account unit size + private float t_snapValue = 1f; // what the user sees +#else + private float snapValue = .25f; + private float t_snapValue = .25f; +#endif + private bool drawGrid = true; + private bool drawAngles = false; + public float angleValue = 45f; + private bool gridRepaint = true; + public bool predictiveGrid = true; + + private bool _snapAsGroup = true; + public bool snapAsGroup + { + get + { + return EditorPrefs.HasKey(pg_Constant.SnapAsGroup) ? EditorPrefs.GetBool(pg_Constant.SnapAsGroup) : true; + } + + set + { + _snapAsGroup = value; + EditorPrefs.SetBool(pg_Constant.SnapAsGroup, _snapAsGroup); + } + } + + public bool fullGrid { get; private set; } + + private bool _scaleSnapEnabled = false; + public bool ScaleSnapEnabled + { + get + { + return EditorPrefs.HasKey(pg_Constant.SnapScale) ? EditorPrefs.GetBool(pg_Constant.SnapScale) : false; + } + + set + { + _scaleSnapEnabled = value; + EditorPrefs.SetBool(pg_Constant.SnapScale, _scaleSnapEnabled); + } + } + + private KeyCode m_IncreaseGridSizeShortcut = KeyCode.Equals; + private KeyCode m_DecreaseGridSizeShortcut = KeyCode.Minus; + private KeyCode m_NudgePerspectiveBackwardShortcut = KeyCode.LeftBracket; + private KeyCode m_NudgePerspectiveForwardShortcut = KeyCode.RightBracket; + private KeyCode m_NudgePerspectiveResetShortcut = KeyCode.Alpha0; + private KeyCode m_CyclePerspectiveShortcut = KeyCode.Backslash; + + bool lockGrid = false; + private Axis renderPlane = Axis.Y; + +#if PG_DEBUG + private GameObject _pivotGo; + public GameObject pivotGo + { + get + { + if(_pivotGo == null) + { + GameObject find = GameObject.Find("PG_PIVOT_CUBE"); + + if(find == null) + { + _pivotGo = GameObject.CreatePrimitive(PrimitiveType.Cube); + _pivotGo.name = "PG_PIVOT_CUBE"; + } + else + _pivotGo = find; + } + + return _pivotGo; + } + + set + { + _pivotGo = value; + } + } +#endif + #endregion + + #region CONSTANT + + const int VERSION = 22; + +#if PRO + const int WINDOW_HEIGHT = 240; +#else + const int WINDOW_HEIGHT = 260; +#endif + + const int DEFAULT_SNAP_MULTIPLIER = 2048; + + const int MAX_LINES = 150; // the maximum amount of lines to display on screen in either direction + public static float alphaBump; // Every tenth line gets an alpha bump by this amount + const int BUTTON_SIZE = 46; + + private Texture2D icon_extendoClose, icon_extendoOpen; + + [SerializeField] + private pg_ToggleContent gc_SnapToGrid = new pg_ToggleContent("Snap", "", "Snaps all selected objects to grid."); + [SerializeField] + private pg_ToggleContent gc_GridEnabled = new pg_ToggleContent("Hide", "Show", "Toggles drawing of guide lines on or off. Note that object snapping is not affected by this setting."); + [SerializeField] + private pg_ToggleContent gc_SnapEnabled = new pg_ToggleContent("On", "Off", "Toggles snapping on or off."); + [SerializeField] + private pg_ToggleContent gc_LockGrid = new pg_ToggleContent("Lock", "Unlck", "Lock the perspective grid center in place."); + [SerializeField] + private pg_ToggleContent gc_AngleEnabled = new pg_ToggleContent("> On", "> Off", "If on, ProGrids will draw angled line guides. Angle is settable in degrees."); + [SerializeField] + private pg_ToggleContent gc_RenderPlaneX = new pg_ToggleContent("X", "X", "Renders a grid on the X plane."); + [SerializeField] + private pg_ToggleContent gc_RenderPlaneY = new pg_ToggleContent("Y", "Y", "Renders a grid on the Y plane."); + [SerializeField] + private pg_ToggleContent gc_RenderPlaneZ = new pg_ToggleContent("Z", "Z", "Renders a grid on the Z plane."); + [SerializeField] + private pg_ToggleContent gc_RenderPerspectiveGrid = new pg_ToggleContent("Full", "Plane", "Renders a 3d grid in perspective mode."); + [SerializeField] + private GUIContent gc_ExtendMenu = new GUIContent("", "Show or hide the scene view menu."); + [SerializeField] + private GUIContent gc_SnapIncrement = new GUIContent("", "Set the snap increment."); + #endregion + + #region PREFERENCES + + /** Settings **/ + public Color gridColorX, gridColorY, gridColorZ; + public Color gridColorX_primary, gridColorY_primary, gridColorZ_primary; + + // private bool lockOrthographic; + + public void LoadPreferences() + { + if ((EditorPrefs.HasKey(pg_Constant.PGVersion) ? EditorPrefs.GetInt(pg_Constant.PGVersion) : 0) != VERSION) + { + EditorPrefs.SetInt(pg_Constant.PGVersion, VERSION); + pg_Preferences.ResetPrefs(); + } + + if (EditorPrefs.HasKey(pg_Constant.SnapEnabled)) + { + snapEnabled = EditorPrefs.GetBool(pg_Constant.SnapEnabled); + } + + menuOpen = EditorPrefs.GetBool(pg_Constant.ProGridsIsExtended, true); + + SetSnapValue( + EditorPrefs.HasKey(pg_Constant.GridUnit) ? (SnapUnit)EditorPrefs.GetInt(pg_Constant.GridUnit) : SnapUnit.Meter, + EditorPrefs.HasKey(pg_Constant.SnapValue) ? EditorPrefs.GetFloat(pg_Constant.SnapValue) : 1, + EditorPrefs.HasKey(pg_Constant.SnapMultiplier) ? EditorPrefs.GetInt(pg_Constant.SnapMultiplier) : DEFAULT_SNAP_MULTIPLIER + ); + + m_IncreaseGridSizeShortcut = EditorPrefs.HasKey("pg_Editor::IncreaseGridSize") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::IncreaseGridSize") + : KeyCode.Equals; + m_DecreaseGridSizeShortcut = EditorPrefs.HasKey("pg_Editor::DecreaseGridSize") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::DecreaseGridSize") + : KeyCode.Minus; + m_NudgePerspectiveBackwardShortcut = EditorPrefs.HasKey("pg_Editor::NudgePerspectiveBackward") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::NudgePerspectiveBackward") + : KeyCode.LeftBracket; + m_NudgePerspectiveForwardShortcut = EditorPrefs.HasKey("pg_Editor::NudgePerspectiveForward") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::NudgePerspectiveForward") + : KeyCode.RightBracket; + m_NudgePerspectiveResetShortcut = EditorPrefs.HasKey("pg_Editor::NudgePerspectiveReset") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::NudgePerspectiveReset") + : KeyCode.Alpha0; + m_CyclePerspectiveShortcut = EditorPrefs.HasKey("pg_Editor::CyclePerspective") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::CyclePerspective") + : KeyCode.Backslash; + + lockGrid = EditorPrefs.GetBool(pg_Constant.LockGrid); + + if (lockGrid) + { + if (EditorPrefs.HasKey(pg_Constant.LockedGridPivot)) + { + string piv = EditorPrefs.GetString(pg_Constant.LockedGridPivot); + string[] pivsplit = piv.Replace("(", "").Replace(")", "").Split(','); + + float x, y, z; + if (!float.TryParse(pivsplit[0], out x)) goto NoParseForYou; + if (!float.TryParse(pivsplit[1], out y)) goto NoParseForYou; + if (!float.TryParse(pivsplit[2], out z)) goto NoParseForYou; + + pivot.x = x; + pivot.y = y; + pivot.z = z; + + NoParseForYou: + ; // appease the compiler + } + + } + + fullGrid = EditorPrefs.GetBool(pg_Constant.PerspGrid); + + renderPlane = EditorPrefs.HasKey(pg_Constant.GridAxis) ? (Axis)EditorPrefs.GetInt(pg_Constant.GridAxis) : Axis.Y; + + alphaBump = (EditorPrefs.HasKey("pg_alphaBump")) ? EditorPrefs.GetFloat("pg_alphaBump") : pg_Preferences.ALPHA_BUMP; + + gridColorX = (EditorPrefs.HasKey("gridColorX")) ? pg_Util.ColorWithString(EditorPrefs.GetString("gridColorX")) : pg_Preferences.GRID_COLOR_X; + gridColorX_primary = new Color(gridColorX.r, gridColorX.g, gridColorX.b, gridColorX.a + alphaBump); + gridColorY = (EditorPrefs.HasKey("gridColorY")) ? pg_Util.ColorWithString(EditorPrefs.GetString("gridColorY")) : pg_Preferences.GRID_COLOR_Y; + gridColorY_primary = new Color(gridColorY.r, gridColorY.g, gridColorY.b, gridColorY.a + alphaBump); + gridColorZ = (EditorPrefs.HasKey("gridColorZ")) ? pg_Util.ColorWithString(EditorPrefs.GetString("gridColorZ")) : pg_Preferences.GRID_COLOR_Z; + gridColorZ_primary = new Color(gridColorZ.r, gridColorZ.g, gridColorZ.b, gridColorZ.a + alphaBump); + + drawGrid = (EditorPrefs.HasKey("showgrid")) ? EditorPrefs.GetBool("showgrid") : pg_Preferences.SHOW_GRID; + + predictiveGrid = EditorPrefs.HasKey(pg_Constant.PredictiveGrid) ? EditorPrefs.GetBool(pg_Constant.PredictiveGrid) : true; + + _snapAsGroup = snapAsGroup; + _scaleSnapEnabled = ScaleSnapEnabled; + } + + private GUISkin sixBySevenSkin; + #endregion + + #region MENU + + [MenuItem("Tools/ProGrids/About", false, 0)] + public static void MenuAboutProGrids() + { + pg_AboutWindow.Init("Assets/ProCore/ProGrids/About/pc_AboutEntry_ProGrids.txt", true); + } + + [MenuItem("Tools/ProGrids/ProGrids Window", false, 15)] + public static void InitProGrids() + { + if (instance == null) + { + EditorPrefs.SetBool(pg_Constant.ProGridsIsEnabled, true); + instance = ScriptableObject.CreateInstance(); + instance.hideFlags = HideFlags.DontSave; + EditorApplication.delayCall += instance.Initialize; + } + else + { + CloseProGrids(); + } + + SceneView.RepaintAll(); + } + + [MenuItem("Tools/ProGrids/Close ProGrids", true, 200)] + public static bool VerifyCloseProGrids() + { + return instance != null || Resources.FindObjectsOfTypeAll().Length > 0; + } + + [MenuItem("Tools/ProGrids/Close ProGrids")] + public static void CloseProGrids() + { + foreach (pg_Editor editor in Resources.FindObjectsOfTypeAll()) + editor.Close(); + } + + [MenuItem("Tools/ProGrids/Cycle SceneView Projection", false, 101)] + public static void CyclePerspective() + { + if (instance == null) return; + + SceneView scnvw = SceneView.lastActiveSceneView; + if (scnvw == null) return; + + int nextOrtho = EditorPrefs.GetInt(pg_Constant.LastOrthoToggledRotation); + switch (nextOrtho) + { + case 0: + scnvw.orthographic = true; + scnvw.LookAt(scnvw.pivot, Quaternion.Euler(Vector3.zero)); + nextOrtho++; + break; + + case 1: + scnvw.orthographic = true; + scnvw.LookAt(scnvw.pivot, Quaternion.Euler(Vector3.up * -90f)); + nextOrtho++; + break; + + case 2: + scnvw.orthographic = true; + scnvw.LookAt(scnvw.pivot, Quaternion.Euler(Vector3.right * 90f)); + nextOrtho++; + break; + + case 3: + scnvw.orthographic = false; + scnvw.LookAt(scnvw.pivot, new Quaternion(-0.1f, 0.9f, -0.2f, -0.4f)); + nextOrtho = 0; + break; + } + EditorPrefs.SetInt(pg_Constant.LastOrthoToggledRotation, nextOrtho); + } + + [MenuItem("Tools/ProGrids/Cycle SceneView Projection", true, 101)] + [MenuItem("Tools/ProGrids/Increase Grid Size", true, 203)] + [MenuItem("Tools/ProGrids/Decrease Grid Size", true, 202)] + public static bool VerifyGridSizeAdjustment() + { + return instance != null; + } + + [MenuItem("Tools/ProGrids/Decrease Grid Size", false, 202)] + public static void DecreaseGridSize() + { + if (instance == null) return; + + int multiplier = EditorPrefs.HasKey(pg_Constant.SnapMultiplier) ? EditorPrefs.GetInt(pg_Constant.SnapMultiplier) : DEFAULT_SNAP_MULTIPLIER; + float val = EditorPrefs.HasKey(pg_Constant.SnapValue) ? EditorPrefs.GetFloat(pg_Constant.SnapValue) : 1f; + + if (multiplier > 1) + multiplier /= 2; + + instance.SetSnapValue(instance.snapUnit, val, multiplier); + + SceneView.RepaintAll(); + } + + [MenuItem("Tools/ProGrids/Increase Grid Size", false, 203)] + public static void IncreaseGridSize() + { + if (instance == null) return; + + int multiplier = EditorPrefs.HasKey(pg_Constant.SnapMultiplier) ? EditorPrefs.GetInt(pg_Constant.SnapMultiplier) : DEFAULT_SNAP_MULTIPLIER; + float val = EditorPrefs.HasKey(pg_Constant.SnapValue) ? EditorPrefs.GetFloat(pg_Constant.SnapValue) : 1f; + + if (multiplier < int.MaxValue / 2) + multiplier *= 2; + + instance.SetSnapValue(instance.snapUnit, val, multiplier); + + SceneView.RepaintAll(); + } + + [MenuItem("Tools/ProGrids/Nudge Perspective Backward", true, 304)] + [MenuItem("Tools/ProGrids/Nudge Perspective Forward", true, 305)] + [MenuItem("Tools/ProGrids/Reset Perspective Nudge", true, 306)] + public static bool VerifyMenuNudgePerspective() + { + return instance != null && !instance.fullGrid && !instance.ortho && instance.lockGrid; + } + + [MenuItem("Tools/ProGrids/Nudge Perspective Backward", false, 304)] + public static void MenuNudgePerspectiveBackward() + { + if (!instance.lockGrid) return; + instance.offset -= instance.snapValue; + instance.gridRepaint = true; + SceneView.RepaintAll(); + } + + [MenuItem("Tools/ProGrids/Nudge Perspective Forward", false, 305)] + public static void MenuNudgePerspectiveForward() + { + if (!instance.lockGrid) return; + instance.offset += instance.snapValue; + instance.gridRepaint = true; + SceneView.RepaintAll(); + } + + [MenuItem("Tools/ProGrids/Reset Perspective Nudge", false, 306)] + public static void MenuNudgePerspectiveReset() + { + if (!instance.lockGrid) return; + instance.offset = 0; + instance.gridRepaint = true; + SceneView.RepaintAll(); + } + + public static void ForceRepaint() + { + if (instance != null) + { + instance.gridRepaint = true; + SceneView.RepaintAll(); + } + } + #endregion + + #region INITIALIZATION / SERIALIZATION + + public void OnBeforeSerialize() { } + + public void OnAfterDeserialize() + { + instance = this; + SceneView.onSceneGUIDelegate += OnSceneGUI; + EditorApplication.update += Update; + EditorApplication.hierarchyWindowChanged += HierarchyWindowChanged; + } + + void OnEnable() + { + instance.LoadGUIResources(); +#if !UNITY_4_6 && !UNITY_4_7 && !UNITY_5_0 && !UNITY_5_1 + Selection.selectionChanged += OnSelectionChange; +#endif + } + + public void Initialize() + { + SceneView.onSceneGUIDelegate -= OnSceneGUI; + EditorApplication.update -= Update; + EditorApplication.hierarchyWindowChanged -= HierarchyWindowChanged; + + SceneView.onSceneGUIDelegate += OnSceneGUI; + EditorApplication.update += Update; + EditorApplication.hierarchyWindowChanged += HierarchyWindowChanged; + + LoadGUIResources(); + LoadPreferences(); + instance = this; + pg_GridRenderer.Init(); + + SetMenuIsExtended(menuOpen); + + lastTime = Time.realtimeSinceStartup; + + // reset colors without changing anything + menuOpen = !menuOpen; + ToggleMenuVisibility(); + + if (drawGrid) + pg_Util.SetUnityGridEnabled(false); + + gridRepaint = true; + RepaintSceneView(); + } + + void OnDestroy() + { + this.Close(true); + } + + public void Close() + { + EditorPrefs.SetBool(pg_Constant.ProGridsIsEnabled, false); + GameObject.DestroyImmediate(this); +#if !UNITY_4_6 && !UNITY_4_7 && !UNITY_5_0 && !UNITY_5_1 + Selection.selectionChanged -= OnSelectionChange; +#endif + } + + public void Close(bool isBeingDestroyed) + { + pg_GridRenderer.Destroy(); + + SceneView.onSceneGUIDelegate -= OnSceneGUI; + EditorApplication.update -= Update; + EditorApplication.hierarchyWindowChanged -= HierarchyWindowChanged; + + instance = null; + + foreach (System.Action listener in toolbarEventSubscribers) + listener(false); + + pg_Util.SetUnityGridEnabled(true); + + SceneView.RepaintAll(); + } + + private void LoadGUIResources() + { + if (gc_GridEnabled.image_on == null) + gc_GridEnabled.image_on = pg_IconUtility.LoadIcon("ProGrids2_GUI_Vis_On.png"); + + if (gc_GridEnabled.image_off == null) + gc_GridEnabled.image_off = pg_IconUtility.LoadIcon("ProGrids2_GUI_Vis_Off.png"); + + if (gc_SnapEnabled.image_on == null) + gc_SnapEnabled.image_on = pg_IconUtility.LoadIcon("ProGrids2_GUI_Snap_On.png"); + + if (gc_SnapEnabled.image_off == null) + gc_SnapEnabled.image_off = pg_IconUtility.LoadIcon("ProGrids2_GUI_Snap_Off.png"); + + if (gc_SnapToGrid.image_on == null) + gc_SnapToGrid.image_on = pg_IconUtility.LoadIcon("ProGrids2_GUI_PushToGrid_Normal.png"); + + if (gc_LockGrid.image_on == null) + gc_LockGrid.image_on = pg_IconUtility.LoadIcon("ProGrids2_GUI_PGrid_Lock_On.png"); + + if (gc_LockGrid.image_off == null) + gc_LockGrid.image_off = pg_IconUtility.LoadIcon("ProGrids2_GUI_PGrid_Lock_Off.png"); + + if (gc_AngleEnabled.image_on == null) + gc_AngleEnabled.image_on = pg_IconUtility.LoadIcon("ProGrids2_GUI_AngleVis_On.png"); + + if (gc_AngleEnabled.image_off == null) + gc_AngleEnabled.image_off = pg_IconUtility.LoadIcon("ProGrids2_GUI_AngleVis_Off.png"); + + if (gc_RenderPlaneX.image_on == null) + gc_RenderPlaneX.image_on = pg_IconUtility.LoadIcon("ProGrids2_GUI_PGrid_X_On.png"); + + if (gc_RenderPlaneX.image_off == null) + gc_RenderPlaneX.image_off = pg_IconUtility.LoadIcon("ProGrids2_GUI_PGrid_X_Off.png"); + + if (gc_RenderPlaneY.image_on == null) + gc_RenderPlaneY.image_on = pg_IconUtility.LoadIcon("ProGrids2_GUI_PGrid_Y_On.png"); + + if (gc_RenderPlaneY.image_off == null) + gc_RenderPlaneY.image_off = pg_IconUtility.LoadIcon("ProGrids2_GUI_PGrid_Y_Off.png"); + + if (gc_RenderPlaneZ.image_on == null) + gc_RenderPlaneZ.image_on = pg_IconUtility.LoadIcon("ProGrids2_GUI_PGrid_Z_On.png"); + + if (gc_RenderPlaneZ.image_off == null) + gc_RenderPlaneZ.image_off = pg_IconUtility.LoadIcon("ProGrids2_GUI_PGrid_Z_Off.png"); + + if (gc_RenderPerspectiveGrid.image_on == null) + gc_RenderPerspectiveGrid.image_on = pg_IconUtility.LoadIcon("ProGrids2_GUI_PGrid_3D_On.png"); + + if (gc_RenderPerspectiveGrid.image_off == null) + gc_RenderPerspectiveGrid.image_off = pg_IconUtility.LoadIcon("ProGrids2_GUI_PGrid_3D_Off.png"); + + if (icon_extendoOpen == null) + icon_extendoOpen = pg_IconUtility.LoadIcon("ProGrids2_MenuExtendo_Open.png"); + + if (icon_extendoClose == null) + icon_extendoClose = pg_IconUtility.LoadIcon("ProGrids2_MenuExtendo_Close.png"); + } + + #endregion + + #region INTERFACE + + GUIStyle gridButtonStyle = new GUIStyle(); + GUIStyle extendoStyle = new GUIStyle(); + GUIStyle gridButtonStyleBlank = new GUIStyle(); + GUIStyle backgroundStyle = new GUIStyle(); + bool guiInitialized = false; + + public float GetSnapIncrement() + { + return t_snapValue; + } + + public void SetSnapIncrement(float inc) + { + SetSnapValue(snapUnit, Mathf.Max(inc, .001f), DEFAULT_SNAP_MULTIPLIER); + } + + void RepaintSceneView() + { + SceneView.RepaintAll(); + } + + int MENU_HIDDEN { get { return menuIsOrtho ? -192 : -173; } } + + const int MENU_EXTENDED = 8; + const int PAD = 3; + Rect r = new Rect(8, MENU_EXTENDED, 42, 16); + Rect backgroundRect = new Rect(00, 0, 0, 0); + Rect extendoButtonRect = new Rect(0, 0, 0, 0); + bool menuOpen = true; + float menuStart = MENU_EXTENDED; + const float MENU_SPEED = 500f; + float deltaTime = 0f; + float lastTime = 0f; + const float FADE_SPEED = 2.5f; + float backgroundFade = 1f; + bool mouseOverMenu = false; + Color menuBackgroundColor = new Color(0f, 0f, 0f, .5f); + Color extendoNormalColor = new Color(.9f, .9f, .9f, .7f); + Color extendoHoverColor = new Color(0f, 1f, .4f, 1f); + bool extendoButtonHovering = false; + bool menuIsOrtho = false; + + void Update() + { + deltaTime = Time.realtimeSinceStartup - lastTime; + lastTime = Time.realtimeSinceStartup; + + if ((menuOpen && menuStart < MENU_EXTENDED) || (!menuOpen && menuStart > MENU_HIDDEN)) + { + menuStart += deltaTime * MENU_SPEED * (menuOpen ? 1f : -1f); + menuStart = Mathf.Clamp(menuStart, MENU_HIDDEN, MENU_EXTENDED); + RepaintSceneView(); + } + + float a = menuBackgroundColor.a; + backgroundFade = (mouseOverMenu || !menuOpen) ? FADE_SPEED : -FADE_SPEED; + + menuBackgroundColor.a = Mathf.Clamp(menuBackgroundColor.a + backgroundFade * deltaTime, 0f, .5f); + extendoNormalColor.a = menuBackgroundColor.a; + extendoHoverColor.a = (menuBackgroundColor.a / .5f); + + if (!Mathf.Approximately(menuBackgroundColor.a, a)) + RepaintSceneView(); + } + + void DrawSceneGUI() + { + GUI.backgroundColor = menuBackgroundColor; + backgroundRect.x = r.x - 4; + backgroundRect.y = 0; + backgroundRect.width = r.width + 8; + backgroundRect.height = r.y + r.height + PAD; + GUI.Box(backgroundRect, "", backgroundStyle); + + // when hit testing mouse for showing the background, add some leeway + backgroundRect.width += 32f; + backgroundRect.height += 32f; + GUI.backgroundColor = Color.white; + + if (!guiInitialized) + { + extendoStyle.normal.background = menuOpen ? icon_extendoClose : icon_extendoOpen; + extendoStyle.hover.background = menuOpen ? icon_extendoClose : icon_extendoOpen; + + guiInitialized = true; + backgroundStyle.normal.background = EditorGUIUtility.whiteTexture; + + Texture2D icon_button_normal = pg_IconUtility.LoadIcon("ProGrids2_Button_Normal.png"); + Texture2D icon_button_hover = pg_IconUtility.LoadIcon("ProGrids2_Button_Hover.png"); + + if (icon_button_normal == null) + { + gridButtonStyleBlank = new GUIStyle("button"); + } + else + { + gridButtonStyleBlank.normal.background = icon_button_normal; + gridButtonStyleBlank.hover.background = icon_button_hover; + gridButtonStyleBlank.normal.textColor = icon_button_normal != null ? Color.white : Color.black; + gridButtonStyleBlank.hover.textColor = new Color(.7f, .7f, .7f, 1f); + } + + gridButtonStyleBlank.padding = new RectOffset(1, 2, 1, 2); + gridButtonStyleBlank.alignment = TextAnchor.MiddleCenter; + } + + r.y = menuStart; + + gc_SnapIncrement.text = t_snapValue.ToString("#.####"); + + if (GUI.Button(r, gc_SnapIncrement, gridButtonStyleBlank)) + { +#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX + // On Mac ShowAsDropdown and ShowAuxWindow both throw stack pop exceptions when initialized. + pg_ParameterWindow options = EditorWindow.GetWindow(true, "ProGrids Settings", true); + Rect screenRect = SceneView.lastActiveSceneView.position; + options.editor = this; + options.position = new Rect(screenRect.x + r.x + r.width + PAD, + screenRect.y + r.y + 24, + 256, + 174); +#else + pg_ParameterWindow options = ScriptableObject.CreateInstance(); + Rect screenRect = SceneView.lastActiveSceneView.position; + options.editor = this; + options.ShowAsDropDown(new Rect(screenRect.x + r.x + r.width + PAD, + screenRect.y + r.y + 24, + 0, + 0), + new Vector2(256, 174)); +#endif + } + + r.y += r.height + PAD; + + // Draw grid + if (pg_ToggleContent.ToggleButton(r, gc_GridEnabled, drawGrid, gridButtonStyle, EditorStyles.miniButton)) + SetGridEnabled(!drawGrid); + + r.y += r.height + PAD; + + // Snap enabled + if (pg_ToggleContent.ToggleButton(r, gc_SnapEnabled, snapEnabled, gridButtonStyle, EditorStyles.miniButton)) + SetSnapEnabled(!snapEnabled); + + r.y += r.height + PAD; + + // Push to grid + if (pg_ToggleContent.ToggleButton(r, gc_SnapToGrid, true, gridButtonStyle, EditorStyles.miniButton)) + SnapToGrid(Selection.transforms); + + r.y += r.height + PAD; + + // Lock grid + if (pg_ToggleContent.ToggleButton(r, gc_LockGrid, lockGrid, gridButtonStyle, EditorStyles.miniButton)) + { + lockGrid = !lockGrid; + EditorPrefs.SetBool(pg_Constant.LockGrid, lockGrid); + EditorPrefs.SetString(pg_Constant.LockedGridPivot, pivot.ToString()); + + // if we've modified the nudge value, reset the pivot here + if (!lockGrid) + offset = 0f; + + gridRepaint = true; + + RepaintSceneView(); + } + + if (menuIsOrtho) + { + r.y += r.height + PAD; + + if (pg_ToggleContent.ToggleButton(r, gc_AngleEnabled, drawAngles, gridButtonStyle, EditorStyles.miniButton)) + SetDrawAngles(!drawAngles); + } + + /** + * Perspective Toggles + */ + r.y += r.height + PAD + 4; + + if (pg_ToggleContent.ToggleButton(r, gc_RenderPlaneX, (renderPlane & Axis.X) == Axis.X && !fullGrid, gridButtonStyle, EditorStyles.miniButton)) + SetRenderPlane(Axis.X); + + r.y += r.height + PAD; + + if (pg_ToggleContent.ToggleButton(r, gc_RenderPlaneY, (renderPlane & Axis.Y) == Axis.Y && !fullGrid, gridButtonStyle, EditorStyles.miniButton)) + SetRenderPlane(Axis.Y); + + r.y += r.height + PAD; + + if (pg_ToggleContent.ToggleButton(r, gc_RenderPlaneZ, (renderPlane & Axis.Z) == Axis.Z && !fullGrid, gridButtonStyle, EditorStyles.miniButton)) + SetRenderPlane(Axis.Z); + + r.y += r.height + PAD; + + if (pg_ToggleContent.ToggleButton(r, gc_RenderPerspectiveGrid, fullGrid, gridButtonStyle, EditorStyles.miniButton)) + { + fullGrid = !fullGrid; + gridRepaint = true; + EditorPrefs.SetBool(pg_Constant.PerspGrid, fullGrid); + RepaintSceneView(); + } + + r.y += r.height + PAD; + + extendoButtonRect.x = r.x; + extendoButtonRect.y = r.y; + extendoButtonRect.width = r.width; + extendoButtonRect.height = r.height; + + GUI.backgroundColor = extendoButtonHovering ? extendoHoverColor : extendoNormalColor; + gc_ExtendMenu.text = icon_extendoOpen == null ? (menuOpen ? "Close" : "Open") : ""; + if (GUI.Button(r, gc_ExtendMenu, icon_extendoOpen ? extendoStyle : gridButtonStyleBlank)) + { + ToggleMenuVisibility(); + extendoButtonHovering = false; + } + GUI.backgroundColor = Color.white; + } + + void ToggleMenuVisibility() + { + menuOpen = !menuOpen; + EditorPrefs.SetBool(pg_Constant.ProGridsIsExtended, menuOpen); + + extendoStyle.normal.background = menuOpen ? icon_extendoClose : icon_extendoOpen; + extendoStyle.hover.background = menuOpen ? icon_extendoClose : icon_extendoOpen; + + foreach (System.Action listener in toolbarEventSubscribers) + listener(menuOpen); + + RepaintSceneView(); + } + + // skip color fading and stuff + void SetMenuIsExtended(bool isExtended) + { + menuOpen = isExtended; + menuIsOrtho = ortho; + menuStart = menuOpen ? MENU_EXTENDED : MENU_HIDDEN; + + menuBackgroundColor.a = 0f; + extendoNormalColor.a = menuBackgroundColor.a; + extendoHoverColor.a = (menuBackgroundColor.a / .5f); + + extendoStyle.normal.background = menuOpen ? icon_extendoClose : icon_extendoOpen; + extendoStyle.hover.background = menuOpen ? icon_extendoClose : icon_extendoOpen; + + foreach (System.Action listener in toolbarEventSubscribers) + listener(menuOpen); + + EditorPrefs.SetBool(pg_Constant.ProGridsIsExtended, menuOpen); + } + + private void OpenProGridsPopup() + { + if (EditorUtility.DisplayDialog( + "Upgrade to ProGrids", // Title + "Enables all kinds of super-cool features, like different snap values, more units of measurement, and angles.", // Message + "Upgrade", // Okay + "Cancel" // Cancel + )) + // #if UNITY_4 + // AssetStore.OpenURL(pg_Constant.ProGridsUpgradeURL); + // #else + Application.OpenURL(pg_Constant.ProGridsUpgradeURL); + // #endif + } + #endregion + + #region ONSCENEGUI + + private Transform lastTransform; + const string AXIS_CONSTRAINT_KEY = "s"; + const string TEMP_DISABLE_KEY = "d"; + private bool toggleAxisConstraint = false; + private bool toggleTempSnap = false; + private Vector3 lastPosition = Vector3.zero; + // private Vector3 lastRotation = Vector3.zero; + private Vector3 lastScale = Vector3.one; + private Vector3 pivot = Vector3.zero, lastPivot = Vector3.zero; + private Vector3 camDir = Vector3.zero, prevCamDir = Vector3.zero; + // Distance from camera to pivot at the last time the grid mesh was updated. + private float lastDistance = 0f; + public float offset = 0f; + + private bool firstMove = true; + +#if PROFILE_TIMES + pb_Profiler profiler = new pb_Profiler(); +#endif + + public bool ortho { get; private set; } + private bool prevOrtho = false; + + float planeGridDrawDistance = 0f; + + public void OnSceneGUI(SceneView scnview) + { + bool isCurrentView = scnview == SceneView.lastActiveSceneView; + + if (isCurrentView) + { + Handles.BeginGUI(); + DrawSceneGUI(); + Handles.EndGUI(); + } + + // don't snap stuff in play mode + if (EditorApplication.isPlayingOrWillChangePlaymode) + return; + + Event e = Event.current; + + // repaint scene gui if mouse is near controls + if (isCurrentView && e.type == EventType.MouseMove) + { + bool tmp = extendoButtonHovering; + extendoButtonHovering = extendoButtonRect.Contains(e.mousePosition); + + if (extendoButtonHovering != tmp) + RepaintSceneView(); + + mouseOverMenu = backgroundRect.Contains(e.mousePosition); + } + + if (e.Equals(Event.KeyboardEvent(AXIS_CONSTRAINT_KEY))) + { + toggleAxisConstraint = true; + } + + if (e.Equals(Event.KeyboardEvent(TEMP_DISABLE_KEY))) + { + toggleTempSnap = true; + } + + if (e.isKey) + { + toggleAxisConstraint = false; + toggleTempSnap = false; + bool used = true; + + if (e.keyCode == m_IncreaseGridSizeShortcut) + { + if (e.type == EventType.KeyUp) + IncreaseGridSize(); + } + else if (e.keyCode == m_DecreaseGridSizeShortcut) + { + if (e.type == EventType.KeyUp) + DecreaseGridSize(); + } + else if (e.keyCode == m_NudgePerspectiveBackwardShortcut) + { + if (e.type == EventType.KeyUp && VerifyMenuNudgePerspective()) + MenuNudgePerspectiveBackward(); + } + else if (e.keyCode == m_NudgePerspectiveForwardShortcut) + { + if (e.type == EventType.KeyUp && VerifyMenuNudgePerspective()) + MenuNudgePerspectiveForward(); + } + else if (e.keyCode == m_NudgePerspectiveResetShortcut) + { + if (e.type == EventType.KeyUp && VerifyMenuNudgePerspective()) + MenuNudgePerspectiveReset(); + } + else if (e.keyCode == m_CyclePerspectiveShortcut) + { + if (e.type == EventType.KeyUp) + CyclePerspective(); + } + else + { + used = false; + } + + if (used) + e.Use(); + } + + Camera cam = Camera.current; + + if (cam == null) + return; + + ortho = cam.orthographic && IsRounded(scnview.rotation.eulerAngles.normalized); + + camDir = pg_Util.CeilFloor(pivot - cam.transform.position); + + if (ortho && !prevOrtho || ortho != menuIsOrtho) + OnSceneBecameOrtho(isCurrentView); + + if (!ortho && prevOrtho) + OnSceneBecamePersp(isCurrentView); + + prevOrtho = ortho; + + float camDistance = Vector3.Distance(cam.transform.position, lastPivot); // distance from camera to pivot + + if (fullGrid) + { + pivot = lockGrid || Selection.activeTransform == null ? pivot : Selection.activeTransform.position; + } + else + { + Vector3 sceneViewPlanePivot = pivot; + + Ray ray = new Ray(cam.transform.position, cam.transform.forward); + Plane plane = new Plane(Vector3.up, pivot); + float dist; + + // the only time a locked grid should ever move is if it's pivot is out + // of the camera's frustum. + if ((lockGrid && !cam.InFrustum(pivot)) || !lockGrid || scnview != SceneView.lastActiveSceneView) + { + if (plane.Raycast(ray, out dist)) + sceneViewPlanePivot = ray.GetPoint(Mathf.Min(dist, planeGridDrawDistance / 2f)); + else + sceneViewPlanePivot = ray.GetPoint(Mathf.Min(cam.farClipPlane / 2f, planeGridDrawDistance / 2f)); + } + + if (lockGrid) + { + pivot = pg_Enum.InverseAxisMask(sceneViewPlanePivot, renderPlane) + pg_Enum.AxisMask(pivot, renderPlane); + } + else + { + pivot = Selection.activeTransform == null ? pivot : Selection.activeTransform.position; + + if (Selection.activeTransform == null || !cam.InFrustum(pivot)) + { + pivot = pg_Enum.InverseAxisMask(sceneViewPlanePivot, renderPlane) + pg_Enum.AxisMask(Selection.activeTransform == null ? pivot : Selection.activeTransform.position, renderPlane); + } + } + } + +#if PG_DEBUG + pivotGo.transform.position = pivot; +#endif + + if (drawGrid) + { + if (ortho) + { + // ortho don't care about pivots + DrawGridOrthographic(cam); + } + else + { +#if PROFILE_TIMES + profiler.LogStart("DrawGridPerspective"); +#endif + + if (gridRepaint || pivot != lastPivot || Mathf.Abs(camDistance - lastDistance) > lastDistance / 2 || camDir != prevCamDir) + { + prevCamDir = camDir; + gridRepaint = false; + lastPivot = pivot; + lastDistance = camDistance; + + if (fullGrid) + { + // if perspective and 3d, use pivot like normal + pg_GridRenderer.DrawGridPerspective(cam, pivot, snapValue, new Color[3] { gridColorX, gridColorY, gridColorZ }, alphaBump); + } + else + { + if ((renderPlane & Axis.X) == Axis.X) + planeGridDrawDistance = pg_GridRenderer.DrawPlane(cam, pivot + Vector3.right * offset, Vector3.up, Vector3.forward, snapValue, gridColorX, alphaBump); + + if ((renderPlane & Axis.Y) == Axis.Y) + planeGridDrawDistance = pg_GridRenderer.DrawPlane(cam, pivot + Vector3.up * offset, Vector3.right, Vector3.forward, snapValue, gridColorY, alphaBump); + + if ((renderPlane & Axis.Z) == Axis.Z) + planeGridDrawDistance = pg_GridRenderer.DrawPlane(cam, pivot + Vector3.forward * offset, Vector3.up, Vector3.right, snapValue, gridColorZ, alphaBump); + + } + } +#if PROFILE_TIMES + profiler.LogFinish("DrawGridPerspective"); +#endif + } + } + + // Always keep track of the selection + if (!Selection.transforms.Contains(lastTransform)) + { + if (Selection.activeTransform) + { + lastTransform = Selection.activeTransform; + lastPosition = Selection.activeTransform.position; + lastScale = Selection.activeTransform.localScale; + } + } + + + if (e.type == EventType.MouseUp) + firstMove = true; + + if (!snapEnabled || GUIUtility.hotControl < 1) + return; + + // Bugger.SetKey("Toggle Snap Off", toggleTempSnap); + + /** + * Snapping (for all the junk in PG, this method is literally the only code that actually affects anything). + */ + if (Selection.activeTransform && pg_Util.SnapIsEnabled(Selection.activeTransform)) + { + if (!FuzzyEquals(lastTransform.position, lastPosition)) + { + Transform selected = lastTransform; + + if (!toggleTempSnap) + { + Vector3 old = selected.position; + Vector3 mask = old - lastPosition; + + bool constraintsOn = toggleAxisConstraint ? !useAxisConstraints : useAxisConstraints; + + if (constraintsOn) + selected.position = pg_Util.SnapValue(old, mask, snapValue); + else + selected.position = pg_Util.SnapValue(old, snapValue); + + Vector3 offset = selected.position - old; + + if (predictiveGrid && firstMove && !fullGrid) + { + firstMove = false; + Axis dragAxis = pg_Util.CalcDragAxis(offset, scnview.camera); + + if (dragAxis != Axis.None && dragAxis != renderPlane) + SetRenderPlane(dragAxis); + } + + if (_snapAsGroup) + { + OffsetTransforms(Selection.transforms, selected, offset); + } + else + { + foreach (Transform t in Selection.transforms) + t.position = constraintsOn ? pg_Util.SnapValue(t.position, mask, snapValue) : pg_Util.SnapValue(t.position, snapValue); + } + } + + lastPosition = selected.position; + } + + if (!FuzzyEquals(lastTransform.localScale, lastScale) && _scaleSnapEnabled) + { + if (!toggleTempSnap) + { + Vector3 old = lastTransform.localScale; + Vector3 mask = old - lastScale; + + if (predictiveGrid) + { + Axis dragAxis = pg_Util.CalcDragAxis(Selection.activeTransform.TransformDirection(mask), scnview.camera); + if (dragAxis != Axis.None && dragAxis != renderPlane) + SetRenderPlane(dragAxis); + } + + foreach (Transform t in Selection.transforms) + t.localScale = pg_Util.SnapValue(t.localScale, mask, snapValue); + + lastScale = lastTransform.localScale; + } + } + } + } + + void OnSelectionChange() + { + // Means we don't have to wait for script reloads + // to respect IgnoreSnap attribute, and keeps the + // cache small. + pg_Util.ClearSnapEnabledCache(); + } + + void OnSceneBecameOrtho(bool isCurrentView) + { + pg_GridRenderer.Destroy(); + + if (isCurrentView && ortho != menuIsOrtho) + SetMenuIsExtended(menuOpen); + } + + void OnSceneBecamePersp(bool isCurrentView) + { + if (isCurrentView && ortho != menuIsOrtho) + SetMenuIsExtended(menuOpen); + } + #endregion + + #region GRAPHICS + + GameObject go; + + private void DrawGridOrthographic(Camera cam) + { + Axis camAxis = AxisWithVector(Camera.current.transform.TransformDirection(Vector3.forward).normalized); + + if (drawGrid) + { + switch (camAxis) + { + case Axis.X: + case Axis.NegX: + DrawGridOrthographic(cam, camAxis, gridColorX_primary, gridColorX); + break; + + case Axis.Y: + case Axis.NegY: + DrawGridOrthographic(cam, camAxis, gridColorY_primary, gridColorY); + break; + + case Axis.Z: + case Axis.NegZ: + DrawGridOrthographic(cam, camAxis, gridColorZ_primary, gridColorZ); + break; + } + } + } + + int PRIMARY_COLOR_INCREMENT = 10; + Color previousColor; + private void DrawGridOrthographic(Camera cam, Axis camAxis, Color primaryColor, Color secondaryColor) + { + previousColor = Handles.color; + Handles.color = primaryColor; + + Vector3 bottomLeft = pg_Util.SnapToFloor(cam.ScreenToWorldPoint(Vector2.zero), snapValue); + Vector3 bottomRight = pg_Util.SnapToFloor(cam.ScreenToWorldPoint(new Vector2(cam.pixelWidth, 0f)), snapValue); + Vector3 topLeft = pg_Util.SnapToFloor(cam.ScreenToWorldPoint(new Vector2(0f, cam.pixelHeight)), snapValue); + Vector3 topRight = pg_Util.SnapToFloor(cam.ScreenToWorldPoint(new Vector2(cam.pixelWidth, cam.pixelHeight)), snapValue); + + Vector3 axis = VectorWithAxis(camAxis); + + float width = Vector3.Distance(bottomLeft, bottomRight); + float height = Vector3.Distance(bottomRight, topRight); + + // Shift lines to 10m forward of the camera + bottomLeft += axis * 10f; + topRight += axis * 10f; + bottomRight += axis * 10f; + topLeft += axis * 10f; + + /** + * Draw Vertical Lines + */ + Vector3 cam_right = cam.transform.right; + Vector3 cam_up = cam.transform.up; + + float _snapVal = snapValue; + + int segs = (int)Mathf.Ceil(width / _snapVal) + 2; + + float n = 2f; + while (segs > MAX_LINES) + { + _snapVal = _snapVal * n; + segs = (int)Mathf.Ceil(width / _snapVal) + 2; + n++; + } + + /// Screen start and end + Vector3 bl = cam_right.Sum() > 0 ? pg_Util.SnapToFloor(bottomLeft, cam_right, _snapVal * PRIMARY_COLOR_INCREMENT) : pg_Util.SnapToCeil(bottomLeft, cam_right, _snapVal * PRIMARY_COLOR_INCREMENT); + Vector3 start = bl - cam_up * (height + _snapVal * 2); + Vector3 end = bl + cam_up * (height + _snapVal * 2); + + segs += PRIMARY_COLOR_INCREMENT; + + /// The current line start and end + Vector3 line_start = Vector3.zero; + Vector3 line_end = Vector3.zero; + + for (int i = -1; i < segs; i++) + { + line_start = start + (i * (cam_right * _snapVal)); + line_end = end + (i * (cam_right * _snapVal)); + Handles.color = i % PRIMARY_COLOR_INCREMENT == 0 ? primaryColor : secondaryColor; + Handles.DrawLine(line_start, line_end); + } + + /** + * Draw Horizontal Lines + */ + segs = (int)Mathf.Ceil(height / _snapVal) + 2; + + n = 2; + while (segs > MAX_LINES) + { + _snapVal = _snapVal * n; + segs = (int)Mathf.Ceil(height / _snapVal) + 2; + n++; + } + + Vector3 tl = cam_up.Sum() > 0 ? pg_Util.SnapToCeil(topLeft, cam_up, _snapVal * PRIMARY_COLOR_INCREMENT) : pg_Util.SnapToFloor(topLeft, cam_up, _snapVal * PRIMARY_COLOR_INCREMENT); + start = tl - cam_right * (width + _snapVal * 2); + end = tl + cam_right * (width + _snapVal * 2); + + segs += (int)PRIMARY_COLOR_INCREMENT; + + for (int i = -1; i < segs; i++) + { + line_start = start + (i * (-cam_up * _snapVal)); + line_end = end + (i * (-cam_up * _snapVal)); + Handles.color = i % PRIMARY_COLOR_INCREMENT == 0 ? primaryColor : secondaryColor; + Handles.DrawLine(line_start, line_end); + } + +#if PRO + if (drawAngles) + { + Vector3 cen = pg_Util.SnapValue(((topRight + bottomLeft) / 2f), snapValue); + + float half = (width > height) ? width : height; + + float opposite = Mathf.Tan(Mathf.Deg2Rad * angleValue) * half; + + Vector3 up = cam.transform.up * opposite; + Vector3 right = cam.transform.right * half; + + Vector3 bottomLeftAngle = cen - (up + right); + Vector3 topRightAngle = cen + (up + right); + + Vector3 bottomRightAngle = cen + (right - up); + Vector3 topLeftAngle = cen + (up - right); + + Handles.color = primaryColor; + + // y = 1x+1 + Handles.DrawLine(bottomLeftAngle, topRightAngle); + + // y = -1x-1 + Handles.DrawLine(topLeftAngle, bottomRightAngle); + } +#endif + + Handles.color = previousColor; + } + #endregion + + #region ENUM UTILITY + + public SnapUnit SnapUnitWithString(string str) + { + foreach (SnapUnit su in SnapUnit.GetValues(typeof(SnapUnit))) + { + if (su.ToString() == str) + return su; + } + return (SnapUnit)0; + } + + public Axis AxisWithVector(Vector3 val) + { + Vector3 v = new Vector3(Mathf.Abs(val.x), Mathf.Abs(val.y), Mathf.Abs(val.z)); + + if (v.x > v.y && v.x > v.z) + { + if (val.x > 0) + return Axis.X; + else + return Axis.NegX; + } + else + if (v.y > v.x && v.y > v.z) + { + if (val.y > 0) + return Axis.Y; + else + return Axis.NegY; + } + else + { + if (val.z > 0) + return Axis.Z; + else + return Axis.NegZ; + } + } + + public Vector3 VectorWithAxis(Axis axis) + { + switch (axis) + { + case Axis.X: + return Vector3.right; + case Axis.Y: + return Vector3.up; + case Axis.Z: + return Vector3.forward; + case Axis.NegX: + return -Vector3.right; + case Axis.NegY: + return -Vector3.up; + case Axis.NegZ: + return -Vector3.forward; + + default: + return Vector3.forward; + } + } + + public bool IsRounded(Vector3 v) + { + return (Mathf.Approximately(v.x, 1f) || Mathf.Approximately(v.y, 1f) || Mathf.Approximately(v.z, 1f)) || v == Vector3.zero; + } + + public Vector3 RoundAxis(Vector3 v) + { + return VectorWithAxis(AxisWithVector(v)); + } + #endregion + + #region MOVING TRANSFORMS + + static bool FuzzyEquals(Vector3 lhs, Vector3 rhs) + { + return Mathf.Abs(lhs.x - rhs.x) < .001f && Mathf.Abs(lhs.y - rhs.y) < .001f && Mathf.Abs(lhs.z - rhs.z) < .001f; + } + + public void OffsetTransforms(Transform[] trsfrms, Transform ignore, Vector3 offset) + { + foreach (Transform t in trsfrms) + { + if (t != ignore) + t.position += offset; + } + } + + void HierarchyWindowChanged() + { + if (Selection.activeTransform != null) + lastPosition = Selection.activeTransform.position; + } + #endregion + + #region SETTINGS + + public void SetSnapEnabled(bool enable) + { + EditorPrefs.SetBool(pg_Constant.SnapEnabled, enable); + + if (Selection.activeTransform) + { + lastTransform = Selection.activeTransform; + lastPosition = Selection.activeTransform.position; + } + + snapEnabled = enable; + gridRepaint = true; + RepaintSceneView(); + } + + public void SetSnapValue(SnapUnit su, float val, int multiplier) + { + int clamp_multiplier = (int)(Mathf.Min(Mathf.Max(1, multiplier), int.MaxValue)); + + float value_multiplier = clamp_multiplier / (float)DEFAULT_SNAP_MULTIPLIER; + + /** + * multiplier is a value modifies the snap val. 100 = no change, + * 50 is half val, 200 is double val, etc. + */ + snapValue = pg_Enum.SnapUnitValue(su) * val * value_multiplier; + RepaintSceneView(); + + EditorPrefs.SetInt(pg_Constant.GridUnit, (int)su); + EditorPrefs.SetFloat(pg_Constant.SnapValue, val); + EditorPrefs.SetInt(pg_Constant.SnapMultiplier, clamp_multiplier); + + + // update gui (only necessary when calling with editorpref values) + t_snapValue = val * value_multiplier; + snapUnit = su; + + switch (su) + { + case SnapUnit.Inch: + PRIMARY_COLOR_INCREMENT = 12; // blasted imperial units + break; + + case SnapUnit.Foot: + PRIMARY_COLOR_INCREMENT = 3; + break; + + default: + PRIMARY_COLOR_INCREMENT = 10; + break; + } + + if (EditorPrefs.GetBool(pg_Constant.SyncUnitySnap, true)) + { + EditorPrefs.SetFloat("MoveSnapX", snapValue); + EditorPrefs.SetFloat("MoveSnapY", snapValue); + EditorPrefs.SetFloat("MoveSnapZ", snapValue); + + if (EditorPrefs.GetBool(pg_Constant.SnapScale, true)) + EditorPrefs.SetFloat("ScaleSnap", snapValue); + + // If Unity snap sync is enabled, refresh the Snap Settings window if it's open. + Type snapSettings = typeof(EditorWindow).Assembly.GetType("UnityEditor.SnapSettings"); + + if (snapSettings != null) + { + FieldInfo snapInitialized = snapSettings.GetField("s_Initialized", BindingFlags.NonPublic | BindingFlags.Static); + + if (snapInitialized != null) + { + snapInitialized.SetValue(null, (object)false); + + EditorWindow win = Resources.FindObjectsOfTypeAll().FirstOrDefault(x => x.ToString().Contains("SnapSettings")); + + if (win != null) + win.Repaint(); + } + } + } + + gridRepaint = true; + } + + public void SetRenderPlane(Axis axis) + { + offset = 0f; + fullGrid = false; + renderPlane = axis; + EditorPrefs.SetBool(pg_Constant.PerspGrid, fullGrid); + EditorPrefs.SetInt(pg_Constant.GridAxis, (int)renderPlane); + gridRepaint = true; + RepaintSceneView(); + } + + public void SetGridEnabled(bool enable) + { + drawGrid = enable; + + if (!drawGrid) + pg_GridRenderer.Destroy(); + else + pg_Util.SetUnityGridEnabled(false); + + EditorPrefs.SetBool("showgrid", enable); + + gridRepaint = true; + RepaintSceneView(); + } + + public void SetDrawAngles(bool enable) + { + drawAngles = enable; + gridRepaint = true; + RepaintSceneView(); + } + + private void SnapToGrid(Transform[] transforms) + { + Undo.RecordObjects(transforms as UnityEngine.Object[], "Snap to Grid"); + + foreach (Transform t in transforms) + t.position = pg_Util.SnapValue(t.position, snapValue); + + gridRepaint = true; + + PushToGrid(snapValue); + } + #endregion + + #region GLOBAL SETTING + + internal bool GetUseAxisConstraints() { return toggleAxisConstraint ? !useAxisConstraints : useAxisConstraints; } + internal float GetSnapValue() { return snapValue; } + internal bool GetSnapEnabled() { return (toggleTempSnap ? !snapEnabled : snapEnabled); } + + /** + * Returns the value of useAxisConstraints, accounting for the shortcut key toggle. + */ + public static bool UseAxisConstraints() + { + return instance != null ? instance.GetUseAxisConstraints() : false; + } + + /** + * Return the current snap value. + */ + public static float SnapValue() + { + return instance != null ? instance.GetSnapValue() : 0f; + } + + /** + * Return true if snapping is enabled, false otherwise. + */ + public static bool SnapEnabled() + { + return instance == null ? false : instance.GetSnapEnabled(); + } + + public static void AddPushToGridListener(System.Action listener) + { + pushToGridListeners.Add(listener); + } + + public static void RemovePushToGridListener(System.Action listener) + { + pushToGridListeners.Remove(listener); + } + + public static void AddToolbarEventSubscriber(System.Action listener) + { + toolbarEventSubscribers.Add(listener); + } + + public static void RemoveToolbarEventSubscriber(System.Action listener) + { + toolbarEventSubscribers.Remove(listener); + } + + public static bool SceneToolbarActive() + { + return instance != null; + } + + [SerializeField] + static List> pushToGridListeners = new List>(); + [SerializeField] + static List> toolbarEventSubscribers = new List>(); + + private void PushToGrid(float snapValue) + { + foreach (System.Action listener in pushToGridListeners) + listener(snapValue); + } + + public static void OnHandleMove(Vector3 worldDirection) + { + if (instance != null) + instance.OnHandleMove_Internal(worldDirection); + } + + private void OnHandleMove_Internal(Vector3 worldDirection) + { + if (predictiveGrid && firstMove && !fullGrid) + { + firstMove = false; + Axis dragAxis = pg_Util.CalcDragAxis(worldDirection, SceneView.lastActiveSceneView.camera); + + if (dragAxis != Axis.None && dragAxis != renderPlane) + SetRenderPlane(dragAxis); + } + } + #endregion + } +} diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Editor.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Editor.cs.meta new file mode 100644 index 0000000..79bb392 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Editor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0ab80081d3e2f274ba76a692cdcfa8d9 +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_GridRenderer.cs b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_GridRenderer.cs new file mode 100644 index 0000000..696aef3 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_GridRenderer.cs @@ -0,0 +1,451 @@ +using UnityEngine; +using UnityEditor; +using System.Collections; +using System.Collections.Generic; +using System.Linq; + +namespace ProGrids +{ + public class pg_GridRenderer + { + static readonly HideFlags PG_HIDE_FLAGS = HideFlags.HideAndDontSave; + + const string PREVIEW_OBJECT_NAME = "ProGridsGridObject"; + const string MATERIAL_OBJECT_NAME = "ProGridsMaterialObject"; + const string MESH_OBJECT_NAME = "ProGridsMeshObject"; + const string GRID_SHADER = "Hidden/ProGrids/pg_GridShader"; + const int MAX_LINES = 256; + + static GameObject gridObject; + static Mesh gridMesh; + static Material gridMaterial; + + public static int majorLineIncrement = 10; + + /** + * Destroy any existing render objects, then initialize new ones. + */ + public static void Init() + { + Destroy(); + + gridObject = EditorUtility.CreateGameObjectWithHideFlags(PREVIEW_OBJECT_NAME, PG_HIDE_FLAGS, new System.Type[2]{typeof(MeshFilter), typeof(MeshRenderer)}); + majorLineIncrement = EditorPrefs.GetInt(pg_Constant.MajorLineIncrement, 10); + if(majorLineIncrement < 2) + majorLineIncrement = 2; + + // Force the mesh to only render in SceneView + pg_SceneMeshRender renderer = gridObject.AddComponent(); + + gridMesh = new Mesh(); + gridMesh.name = MESH_OBJECT_NAME; + gridMesh.hideFlags = PG_HIDE_FLAGS; + + gridMaterial = new Material(Shader.Find(GRID_SHADER)); + gridMaterial.name = MATERIAL_OBJECT_NAME; + gridMaterial.hideFlags = PG_HIDE_FLAGS; + + renderer.mesh = gridMesh; + renderer.material = gridMaterial; + } + + public static void Destroy() + { + DestoryObjectsWithName(MESH_OBJECT_NAME, typeof(Mesh)); + DestoryObjectsWithName(MATERIAL_OBJECT_NAME, typeof(Material)); + DestoryObjectsWithName(PREVIEW_OBJECT_NAME, typeof(GameObject)); + } + + static void DestoryObjectsWithName(string Name, System.Type type) + { + IEnumerable go = Resources.FindObjectsOfTypeAll(type).Where(x => x.name.Contains(Name)); + + foreach(Object t in go) + { + GameObject.DestroyImmediate(t); + } + } + + private static int tan_iter, bit_iter, max = MAX_LINES, div = 1; + + /** + * Returns the distance this grid is drawing + */ + public static float DrawPlane(Camera cam, Vector3 pivot, Vector3 tangent, Vector3 bitangent, float snapValue, Color color, float alphaBump) + { + if(!gridMesh || !gridMaterial || !gridObject) + Init(); + + gridMaterial.SetFloat("_AlphaCutoff", .1f); + gridMaterial.SetFloat("_AlphaFade", .6f); + + pivot = pg_Util.SnapValue(pivot, snapValue); + + Vector3 p = cam.WorldToViewportPoint(pivot); + bool inFrustum = (p.x >= 0f && p.x <= 1f) && + (p.y >= 0f && p.y <= 1f) && + p.z >= 0f; + + float[] distances = GetDistanceToFrustumPlanes(cam, pivot, tangent, bitangent, 24f); + + if(inFrustum) + { + tan_iter = (int)(Mathf.Ceil( (Mathf.Abs(distances[0]) + Mathf.Abs(distances[2]))/snapValue )); + bit_iter = (int)(Mathf.Ceil( (Mathf.Abs(distances[1]) + Mathf.Abs(distances[3]))/snapValue )); + + max = Mathf.Max( tan_iter, bit_iter ); + + // if the max is around 3x greater than min, we're probably skewing the camera at near-plane + // angle, so use the min instead. + if(max > Mathf.Min(tan_iter, bit_iter) * 2) + max = (int) Mathf.Min(tan_iter, bit_iter) * 2; + + div = 1; + + float dot = Vector3.Dot( cam.transform.position-pivot, Vector3.Cross(tangent, bitangent) ); + + if(max > MAX_LINES) + { + if(Vector3.Distance(cam.transform.position, pivot) > 50f * snapValue && Mathf.Abs(dot) > .8f) + { + while(max/div > MAX_LINES) + div += div; + } + else + { + max = MAX_LINES; + } + } + } + + // origin, tan, bitan, increment, iterations, divOffset, color, primary alpha bump + DrawFullGrid(cam, pivot, tangent, bitangent, snapValue*div, max/div, div, color, alphaBump); + + return ((snapValue*div)*(max/div)); + } + + public static void DrawGridPerspective(Camera cam, Vector3 pivot, float snapValue, Color[] colors, float alphaBump) + { + if(!gridMesh || !gridMaterial || !gridObject) + Init(); + + gridMaterial.SetFloat("_AlphaCutoff", 0f); + gridMaterial.SetFloat("_AlphaFade", 0f); + + Vector3 camDir = (pivot - cam.transform.position).normalized; + pivot = pg_Util.SnapValue(pivot, snapValue); + + // Used to flip the grid to match whatever direction the cam is currently + // coming at the pivot from + Vector3 right = camDir.x < 0f ? Vector3.right : Vector3.right * -1f; + Vector3 up = camDir.y < 0f ? Vector3.up : Vector3.up * -1f; + Vector3 forward = camDir.z < 0f ? Vector3.forward : Vector3.forward * -1f; + + // Get intersecting point for each axis, if it exists + Ray ray_x = new Ray(pivot, right); + Ray ray_y = new Ray(pivot, up); + Ray ray_z = new Ray(pivot, forward); + + float x_dist = 10f, y_dist = 10f, z_dist = 10f; + bool x_intersect = false, y_intersect = false, z_intersect = false; + + Plane[] planes = GeometryUtility.CalculateFrustumPlanes(cam); + foreach(Plane p in planes) + { + float dist; + float t = 0; + + if(p.Raycast(ray_x, out dist)) + { + t = Vector3.Distance(pivot, ray_x.GetPoint(dist)); + if(t < x_dist || !x_intersect) + { + x_intersect = true; + x_dist = t; + } + } + + if(p.Raycast(ray_y, out dist)) + { + t = Vector3.Distance(pivot, ray_y.GetPoint(dist)); + if(t < y_dist || !y_intersect) + { + y_intersect = true; + y_dist = t; + } + } + + if(p.Raycast(ray_z, out dist)) + { + t = Vector3.Distance(pivot, ray_z.GetPoint(dist)); + if(t < z_dist || !z_intersect) + { + z_intersect = true; + z_dist = t; + } + } + } + + int x_iter = (int)(Mathf.Ceil(Mathf.Max(x_dist, y_dist))/snapValue); + int y_iter = (int)(Mathf.Ceil(Mathf.Max(x_dist, z_dist))/snapValue); + int z_iter = (int)(Mathf.Ceil(Mathf.Max(z_dist, y_dist))/snapValue); + + int max = Mathf.Max( Mathf.Max(x_iter, y_iter), z_iter ); + int div = 1; + while(max/div> MAX_LINES) + { + div++; + } + + Vector3[] vertices_t = null; + Vector3[] normals_t = null; + Color[] colors_t = null; + int[] indices_t = null; + + List vertices_m = new List(); + List normals_m = new List(); + List colors_m = new List(); + List indices_m = new List(); + + // X plane + DrawHalfGrid(cam, pivot, up, right, snapValue*div, x_iter/div, colors[0], alphaBump, out vertices_t, out normals_t, out colors_t, out indices_t, 0); + vertices_m.AddRange(vertices_t); + normals_m.AddRange(normals_t); + colors_m.AddRange(colors_t); + indices_m.AddRange(indices_t); + + // Y plane + DrawHalfGrid(cam, pivot, right, forward, snapValue*div, y_iter/div, colors[1], alphaBump, out vertices_t, out normals_t, out colors_t, out indices_t, vertices_m.Count); + vertices_m.AddRange(vertices_t); + normals_m.AddRange(normals_t); + colors_m.AddRange(colors_t); + indices_m.AddRange(indices_t); + + // Z plane + DrawHalfGrid(cam, pivot, forward, up, snapValue*div, z_iter/div, colors[2], alphaBump, out vertices_t, out normals_t, out colors_t, out indices_t, vertices_m.Count); + vertices_m.AddRange(vertices_t); + normals_m.AddRange(normals_t); + colors_m.AddRange(colors_t); + indices_m.AddRange(indices_t); + + gridMesh.Clear(); + gridMesh.vertices = vertices_m.ToArray(); + gridMesh.normals = normals_m.ToArray(); + gridMesh.subMeshCount = 1; + gridMesh.uv = new Vector2[vertices_m.Count]; + gridMesh.colors = colors_m.ToArray(); + gridMesh.SetIndices(indices_m.ToArray(), MeshTopology.Lines, 0); + + } + + private static void DrawHalfGrid(Camera cam, Vector3 pivot, Vector3 tan, Vector3 bitan, float increment, int iterations, Color secondary, float alphaBump, + out Vector3[] vertices, + out Vector3[] normals, + out Color[] colors, + out int[] indices, int offset) + { + Color primary = secondary; + primary.a += alphaBump; + + float len = increment * iterations; + + int highlightOffsetTan = (int)((pg_Util.ValueFromMask(pivot, tan) % (increment * majorLineIncrement)) / increment); + int highlightOffsetBitan = (int)((pg_Util.ValueFromMask(pivot, bitan) % (increment * majorLineIncrement)) / increment); + + iterations++; + + // this could only use 3 verts per line + float fade = .75f; + float fadeDist = len * fade; + Vector3 nrm = Vector3.Cross(tan, bitan); + + vertices = new Vector3[iterations*6-3]; + normals = new Vector3[iterations*6-3]; + indices = new int[iterations*8-4]; + colors = new Color[iterations*6-3]; + + vertices[0] = pivot; + vertices[1] = (pivot + bitan*fadeDist); + vertices[2] = (pivot + bitan*len); + + normals[0] = nrm; + normals[1] = nrm; + normals[2] = nrm; + + indices[0] = 0 + offset; + indices[1] = 1 + offset; + indices[2] = 1 + offset; + indices[3] = 2 + offset; + + colors[0] = primary; + colors[1] = primary; + colors[2] = primary; + colors[2].a = 0f; + + + int n = 4; + int v = 3; + + for(int i = 1; i < iterations; i++) + { + // MeshTopology doesn't exist prior to Unity 4 + vertices[v+0] = pivot + i * tan * increment; + vertices[v+1] = (pivot + bitan*fadeDist) + i * tan * increment; + vertices[v+2] = (pivot + bitan*len) + i * tan * increment; + + vertices[v+3] = pivot + i * bitan * increment; + vertices[v+4] = (pivot + tan*fadeDist) + i * bitan * increment; + vertices[v+5] = (pivot + tan*len) + i * bitan * increment; + + normals[v+0] = nrm; + normals[v+1] = nrm; + normals[v+2] = nrm; + normals[v+3] = nrm; + normals[v+4] = nrm; + normals[v+5] = nrm; + + indices[n+0] = v + 0 + offset; + indices[n+1] = v + 1 + offset; + indices[n+2] = v + 1 + offset; + indices[n+3] = v + 2 + offset; + indices[n+4] = v + 3 + offset; + indices[n+5] = v + 4 + offset; + indices[n+6] = v + 4 + offset; + indices[n+7] = v + 5 + offset; + + float alpha = (i/(float)iterations); + alpha = alpha < fade ? 1f : 1f - ( (alpha-fade)/(1-fade) ); + + Color col = (i+highlightOffsetTan) % majorLineIncrement == 0 ? primary : secondary; + col.a *= alpha; + + colors[v+0] = col; + colors[v+1] = col; + colors[v+2] = col; + colors[v+2].a = 0f; + + col = (i+highlightOffsetBitan) % majorLineIncrement == 0 ? primary : secondary; + col.a *= alpha; + + colors[v+3] = col; + colors[v+4] = col; + colors[v+5] = col; + colors[v+5].a = 0f; + + n += 8; + v += 6; + } + } + + /** + * Draws a plane grid using pivot point, the right and forward directions, and how far each direction should extend + */ + private static void DrawFullGrid(Camera cam, Vector3 pivot, Vector3 tan, Vector3 bitan, float increment, int iterations, int div, Color secondary, float alphaBump) + { + Color primary = secondary; + primary.a += alphaBump; + + float len = iterations * increment; + + iterations++; + + Vector3 start = pivot - tan*(len/2f) - bitan*(len/2f); + start = pg_Util.SnapValue(start, bitan+tan, increment); + + float inc = increment; + int highlightOffsetTan = (int)((pg_Util.ValueFromMask(start, tan) % (inc*majorLineIncrement)) / inc); + int highlightOffsetBitan = (int)((pg_Util.ValueFromMask(start, bitan) % (inc*majorLineIncrement)) / inc); + + Vector3[] lines = new Vector3[iterations * 4]; + int[] indices = new int[iterations * 4]; + Color[] colors = new Color[iterations * 4]; + + int v = 0, t = 0; + + for(int i = 0; i < iterations; i++) + { + Vector3 a = start + tan * i * increment; + Vector3 b = start + bitan * i * increment; + + lines[v+0] = a; + lines[v+1] = a + bitan * len; + + lines[v+2] = b; + lines[v+3] = b + tan * len; + + indices[t++] = v; + indices[t++] = v+1; + indices[t++] = v+2; + indices[t++] = v+3; + + Color col = (i + highlightOffsetTan) % majorLineIncrement == 0 ? primary : secondary; + + // tan + colors[v+0] = col; + colors[v+1] = col; + + col = (i + highlightOffsetBitan) % majorLineIncrement == 0 ? primary : secondary; + + // bitan + colors[v+2] = col; + colors[v+3] = col; + + v += 4; + } + + Vector3 nrm = Vector3.Cross(tan, bitan); + Vector3[] nrms = new Vector3[lines.Length]; + for(int i = 0; i < lines.Length; i++) + nrms[i] = nrm; + + + gridMesh.Clear(); + gridMesh.vertices = lines; + gridMesh.normals = nrms; + gridMesh.subMeshCount = 1; + gridMesh.uv = new Vector2[lines.Length]; + gridMesh.colors = colors; + gridMesh.SetIndices(indices, MeshTopology.Lines, 0); + } + + /** + * \brief Returns the distance from pivot to frustum plane in the order of + * float[] { tan, bitan, -tan, -bitan } + */ + private static float[] GetDistanceToFrustumPlanes(Camera cam, Vector3 pivot, Vector3 tan, Vector3 bitan, float minDist) + { + Ray[] rays = new Ray[4] + { + new Ray(pivot, tan), + new Ray(pivot, bitan), + new Ray(pivot, -tan), + new Ray(pivot, -bitan) + }; + + float[] intersects = new float[4] { minDist, minDist, minDist, minDist }; + bool[] intersection_found = new bool[4] { false, false, false, false }; + + Plane[] planes = GeometryUtility.CalculateFrustumPlanes(cam); + foreach(Plane p in planes) + { + float dist; + float t = 0; + + for(int i = 0; i < 4; i++) + { + if(p.Raycast(rays[i], out dist)) + { + t = Vector3.Distance(pivot, rays[i].GetPoint(dist)); + + if(t < intersects[i] || !intersection_found[i]) + { + intersection_found[i] = true; + intersects[i] = Mathf.Max(minDist, t); + } + } + } + } + return intersects; + } + } +} diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_GridRenderer.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_GridRenderer.cs.meta new file mode 100644 index 0000000..e495174 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_GridRenderer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6367e9291991f466897f892a41dd75ff +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ParameterWindow.cs b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ParameterWindow.cs new file mode 100644 index 0000000..4c20201 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ParameterWindow.cs @@ -0,0 +1,78 @@ +using UnityEngine; +using UnityEditor; +using System.Collections; + +namespace ProGrids +{ + + public class pg_ParameterWindow : EditorWindow + { + public pg_Editor editor; + + GUIContent gc_predictiveGrid = new GUIContent("Predictive Grid", "If enabled, the grid will automatically render at the optimal axis based on movement."); + GUIContent gc_snapAsGroup = new GUIContent("Snap as Group", "If enabled, selected objects will keep their relative offsets when moving. If disabled, every object in the selection is snapped to grid independently."); + + void OnGUI() + { + GUILayout.Label("Snap Settings", EditorStyles.boldLabel); + + float snap = editor.GetSnapIncrement(); + + EditorGUI.BeginChangeCheck(); + + snap = EditorGUILayout.FloatField("Snap Value", snap); + + if(EditorGUI.EndChangeCheck()) + editor.SetSnapIncrement(snap); + + EditorGUI.BeginChangeCheck(); + int majorLineIncrement = EditorPrefs.GetInt(pg_Constant.MajorLineIncrement, 10); + majorLineIncrement = EditorGUILayout.IntField("Major Line Increment", majorLineIncrement); + majorLineIncrement = majorLineIncrement < 2 ? 2 : majorLineIncrement > 128 ? 128 : majorLineIncrement; + if(EditorGUI.EndChangeCheck()) + { + EditorPrefs.SetInt(pg_Constant.MajorLineIncrement, majorLineIncrement); + pg_GridRenderer.majorLineIncrement = majorLineIncrement; + pg_Editor.ForceRepaint(); + } + + editor.ScaleSnapEnabled = EditorGUILayout.Toggle("Snap On Scale", editor.ScaleSnapEnabled); + + SnapUnit _gridUnits = (SnapUnit)(EditorPrefs.HasKey(pg_Constant.GridUnit) ? EditorPrefs.GetInt(pg_Constant.GridUnit) : 0); + + bool snapAsGroup = editor.snapAsGroup; + snapAsGroup = EditorGUILayout.Toggle(gc_snapAsGroup, snapAsGroup); + if(snapAsGroup != editor.snapAsGroup) + editor.snapAsGroup = snapAsGroup; + + EditorGUI.BeginChangeCheck(); + + _gridUnits = (SnapUnit)EditorGUILayout.EnumPopup("Grid Units", _gridUnits); + + EditorGUI.BeginChangeCheck(); + editor.angleValue = EditorGUILayout.Slider("Angle", editor.angleValue, 0f, 180f); + if(EditorGUI.EndChangeCheck()) + SceneView.RepaintAll(); + + if( EditorGUI.EndChangeCheck() ) + { + EditorPrefs.SetInt(pg_Constant.GridUnit, (int) _gridUnits); + editor.LoadPreferences(); + } + + bool tmp = editor.predictiveGrid; + tmp = EditorGUILayout.Toggle(gc_predictiveGrid, tmp); + if( tmp != editor.predictiveGrid ) + { + editor.predictiveGrid = tmp; + EditorPrefs.SetBool(pg_Constant.PredictiveGrid, tmp); + } + + GUILayout.FlexibleSpace(); + + if( GUILayout.Button("Done")) + this.Close(); + } + } + +} diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ParameterWindow.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ParameterWindow.cs.meta new file mode 100644 index 0000000..26e06bb --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ParameterWindow.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 361cb9f8460027f4a88a1b9610de18c0 +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Preferences.cs b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Preferences.cs new file mode 100644 index 0000000..cfdd37b --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Preferences.cs @@ -0,0 +1,176 @@ +using UnityEngine; +using UnityEditor; +using System.Collections; + +namespace ProGrids +{ + public class pg_Preferences + { + static Color _gridColorX; + static Color _gridColorY; + static Color _gridColorZ; + static float _alphaBump; + static bool _scaleSnapEnabled; + static int _snapMethod; + static float _BracketIncreaseValue; + static SnapUnit _GridUnits; + static bool _syncUnitySnap; + + static KeyCode _IncreaseGridSize = KeyCode.Equals; + static KeyCode _DecreaseGridSize = KeyCode.Minus; + static KeyCode _NudgePerspectiveBackward = KeyCode.LeftBracket; + static KeyCode _NudgePerspectiveForward = KeyCode.RightBracket; + static KeyCode _NudgePerspectiveReset = KeyCode.Alpha0; + static KeyCode _CyclePerspective = KeyCode.Backslash; + + + /** Defaults **/ + public static Color GRID_COLOR_X = new Color(.9f, .46f, .46f, .15f); + public static Color GRID_COLOR_Y = new Color(.46f, .9f, .46f, .15f); + public static Color GRID_COLOR_Z = new Color(.46f, .46f, .9f, .15f); + public static float ALPHA_BUMP = .25f; + public static bool USE_AXIS_CONSTRAINTS = false; + public static bool SHOW_GRID = true; + + static string[] SnapMethod = new string[] + { + "Snap on Selected Axis", + "Snap on All Axes" + }; + + static int[] SnapVals = new int[] { 1, 0 }; + static bool prefsLoaded = false; + + [PreferenceItem("ProGrids")] + public static void PreferencesGUI() + { + if (!prefsLoaded) + prefsLoaded = LoadPreferences(); + + // EditorGUILayout.HelpBox("Changes will take effect on the next ProGrids open.", MessageType.Info); + + GUILayout.Label("Grid Colors per Axis", EditorStyles.boldLabel); + _gridColorX = EditorGUILayout.ColorField("X Axis", _gridColorX); + _gridColorY = EditorGUILayout.ColorField("Y Axis", _gridColorY); + _gridColorZ = EditorGUILayout.ColorField("Z Axis", _gridColorZ); + + _alphaBump = EditorGUILayout.Slider(new GUIContent("Tenth Line Alpha", "Every 10th line will have it's alpha value bumped by this amount."), _alphaBump, 0f, 1f); + + // not used + // _BracketIncreaseValue = EditorGUILayout.FloatField(new GUIContent("Grid Increment Value", "Affects the amount by which the bracket keys will increment or decrement that snap value."), _BracketIncreaseValue); + + _GridUnits = (SnapUnit)EditorGUILayout.EnumPopup("Grid Units", _GridUnits); + + _scaleSnapEnabled = EditorGUILayout.Toggle("Snap On Scale", _scaleSnapEnabled); + + // GUILayout.BeginHorizontal(); + // EditorGUILayout.PrefixLabel(new GUIContent("Axis Constraints", "If toggled, objects will be automatically grid aligned on all axes when moving.")); + + _snapMethod = EditorGUILayout.IntPopup("Snap Method", _snapMethod, SnapMethod, SnapVals); + + _syncUnitySnap = EditorGUILayout.Toggle("Sync w/ Unity Snap", _syncUnitySnap); + + // GUILayout.EndHorizontal(); + + GUILayout.Label("Shortcuts", EditorStyles.boldLabel); + _IncreaseGridSize = (KeyCode)EditorGUILayout.EnumPopup("Increase Grid Size", _IncreaseGridSize); + _DecreaseGridSize = (KeyCode)EditorGUILayout.EnumPopup("Decrease Grid Size", _DecreaseGridSize); + _NudgePerspectiveBackward = (KeyCode)EditorGUILayout.EnumPopup("Nudge Perspective Backward", _NudgePerspectiveBackward); + _NudgePerspectiveForward = (KeyCode)EditorGUILayout.EnumPopup("Nudge Perspective Forward", _NudgePerspectiveForward); + _NudgePerspectiveReset = (KeyCode)EditorGUILayout.EnumPopup("Nudge Perspective Reset", _NudgePerspectiveReset); + _CyclePerspective = (KeyCode)EditorGUILayout.EnumPopup("Cycle Perspective", _CyclePerspective); + + if (GUILayout.Button("Reset")) + { + if (EditorUtility.DisplayDialog("Delete ProGrids editor preferences?", "Are you sure you want to delete these?, this action cannot be undone.", "Yes", "No")) + ResetPrefs(); + } + + if (GUI.changed) + SetPreferences(); + } + + public static bool LoadPreferences() + { + _scaleSnapEnabled = EditorPrefs.HasKey("scaleSnapEnabled") ? EditorPrefs.GetBool("scaleSnapEnabled") : false; + _gridColorX = (EditorPrefs.HasKey("gridColorX")) ? pg_Util.ColorWithString(EditorPrefs.GetString("gridColorX")) : GRID_COLOR_X; + _gridColorY = (EditorPrefs.HasKey("gridColorY")) ? pg_Util.ColorWithString(EditorPrefs.GetString("gridColorY")) : GRID_COLOR_Y; + _gridColorZ = (EditorPrefs.HasKey("gridColorZ")) ? pg_Util.ColorWithString(EditorPrefs.GetString("gridColorZ")) : GRID_COLOR_Z; + _alphaBump = (EditorPrefs.HasKey("pg_alphaBump")) ? EditorPrefs.GetFloat("pg_alphaBump") : ALPHA_BUMP; + _snapMethod = System.Convert.ToInt32( + (EditorPrefs.HasKey(pg_Constant.UseAxisConstraints)) ? EditorPrefs.GetBool(pg_Constant.UseAxisConstraints) : USE_AXIS_CONSTRAINTS + ); + _BracketIncreaseValue = EditorPrefs.HasKey(pg_Constant.BracketIncreaseValue) ? EditorPrefs.GetFloat(pg_Constant.BracketIncreaseValue) : .25f; + _GridUnits = (SnapUnit)(EditorPrefs.HasKey(pg_Constant.GridUnit) ? EditorPrefs.GetInt(pg_Constant.GridUnit) : 0); + _syncUnitySnap = EditorPrefs.GetBool(pg_Constant.SyncUnitySnap, true); + + _IncreaseGridSize = EditorPrefs.HasKey("pg_Editor::IncreaseGridSize") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::IncreaseGridSize") + : KeyCode.Equals; + _DecreaseGridSize = EditorPrefs.HasKey("pg_Editor::DecreaseGridSize") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::DecreaseGridSize") + : KeyCode.Minus; + _NudgePerspectiveBackward = EditorPrefs.HasKey("pg_Editor::NudgePerspectiveBackward") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::NudgePerspectiveBackward") + : KeyCode.LeftBracket; + _NudgePerspectiveForward = EditorPrefs.HasKey("pg_Editor::NudgePerspectiveForward") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::NudgePerspectiveForward") + : KeyCode.RightBracket; + _NudgePerspectiveReset = EditorPrefs.HasKey("pg_Editor::NudgePerspectiveReset") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::NudgePerspectiveReset") + : KeyCode.Alpha0; + _CyclePerspective = EditorPrefs.HasKey("pg_Editor::CyclePerspective") + ? (KeyCode)EditorPrefs.GetInt("pg_Editor::CyclePerspective") + : KeyCode.Backslash; + + return true; + } + + public static void SetPreferences() + { + EditorPrefs.SetBool("scaleSnapEnabled", _scaleSnapEnabled); + EditorPrefs.SetString("gridColorX", _gridColorX.ToString("f3")); + EditorPrefs.SetString("gridColorY", _gridColorY.ToString("f3")); + EditorPrefs.SetString("gridColorZ", _gridColorZ.ToString("f3")); + EditorPrefs.SetFloat("pg_alphaBump", _alphaBump); + EditorPrefs.SetBool(pg_Constant.UseAxisConstraints, System.Convert.ToBoolean(_snapMethod)); + EditorPrefs.SetFloat(pg_Constant.BracketIncreaseValue, _BracketIncreaseValue); + EditorPrefs.SetInt(pg_Constant.GridUnit, (int)_GridUnits); + EditorPrefs.SetBool(pg_Constant.SyncUnitySnap, _syncUnitySnap); + EditorPrefs.SetInt("pg_Editor::IncreaseGridSize", (int)_IncreaseGridSize); + EditorPrefs.SetInt("pg_Editor::DecreaseGridSize", (int)_DecreaseGridSize); + EditorPrefs.SetInt("pg_Editor::NudgePerspectiveBackward", (int)_NudgePerspectiveBackward); + EditorPrefs.SetInt("pg_Editor::NudgePerspectiveForward", (int)_NudgePerspectiveForward); + EditorPrefs.SetInt("pg_Editor::NudgePerspectiveReset", (int)_NudgePerspectiveReset); + EditorPrefs.SetInt("pg_Editor::CyclePerspective", (int)_CyclePerspective); + + if (pg_Editor.instance != null) + { + pg_Editor.instance.LoadPreferences(); + } + } + + public static void ResetPrefs() + { + EditorPrefs.DeleteKey("scaleSnapEnabled"); + EditorPrefs.DeleteKey("gridColorX"); + EditorPrefs.DeleteKey("gridColorY"); + EditorPrefs.DeleteKey("gridColorZ"); + EditorPrefs.DeleteKey("pg_alphaBump"); + EditorPrefs.DeleteKey(pg_Constant.UseAxisConstraints); + EditorPrefs.DeleteKey(pg_Constant.BracketIncreaseValue); + EditorPrefs.DeleteKey(pg_Constant.GridUnit); + EditorPrefs.DeleteKey("showgrid"); + EditorPrefs.DeleteKey(pg_Constant.SnapMultiplier); + EditorPrefs.DeleteKey(pg_Constant.SyncUnitySnap); + EditorPrefs.DeleteKey("pg_Editor::IncreaseGridSize"); + EditorPrefs.DeleteKey("pg_Editor::DecreaseGridSize"); + EditorPrefs.DeleteKey("pg_Editor::NudgePerspectiveBackward"); + EditorPrefs.DeleteKey("pg_Editor::NudgePerspectiveForward"); + EditorPrefs.DeleteKey("pg_Editor::NudgePerspectiveReset"); + EditorPrefs.DeleteKey("pg_Editor::CyclePerspective"); + + LoadPreferences(); + } + } +} diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Preferences.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Preferences.cs.meta new file mode 100644 index 0000000..bb020f8 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_Preferences.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 19a8719bbc0e11f46b9cd7b9debdfc12 +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ToggleContent.cs b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ToggleContent.cs new file mode 100644 index 0000000..e8c86fa --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ToggleContent.cs @@ -0,0 +1,48 @@ +using UnityEngine; +using System.Collections; + +namespace ProGrids +{ + /** + * A substitute for GUIContent that offers some additional functionality. + */ + [System.Serializable] + public class pg_ToggleContent + { + public string text_on, text_off; + public Texture2D image_on, image_off; + public string tooltip; + + GUIContent gc = new GUIContent(); + + public pg_ToggleContent(string t_on, string t_off, string tooltip) + { + this.text_on = t_on; + this.text_off = t_off; + this.image_on = (Texture2D)null; + this.image_off = (Texture2D)null; + this.tooltip = tooltip; + + gc.tooltip = tooltip; + } + + public pg_ToggleContent(string t_on, string t_off, Texture2D i_on, Texture2D i_off, string tooltip) + { + this.text_on = t_on; + this.text_off = t_off; + this.image_on = i_on; + this.image_off = i_off; + this.tooltip = tooltip; + + gc.tooltip = tooltip; + } + + public static bool ToggleButton(Rect r, pg_ToggleContent content, bool enabled, GUIStyle imageStyle, GUIStyle altStyle) + { + content.gc.image = enabled ? content.image_on : content.image_off; + content.gc.text = content.gc.image == null ? (enabled ? content.text_on : content.text_off) : ""; + + return GUI.Button(r, content.gc, content.gc.image != null ? imageStyle : altStyle); + } + } +} diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ToggleContent.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ToggleContent.cs.meta new file mode 100644 index 0000000..1609d2f --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Editor/pg_ToggleContent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 66b1c4a9ec825c7458f935aae34d66b1 +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI.meta new file mode 100644 index 0000000..40b1c2d --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 923ab02b47ee8dc46887d8c0d86f3415 +folderAsset: yes +timeCreated: 1518451281 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles.meta new file mode 100644 index 0000000..6241907 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 4a29fc6d2c7722c45bd47ac290baf279 +folderAsset: yes +timeCreated: 1518451281 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Hover.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Hover.png new file mode 100644 index 0000000..cadbd8d --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Hover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ddad8c6a7c4ad8b589099d0796acc0f605f3c0a7c2fd00c70ed5fe3bd171a2e +size 21338 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Hover.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Hover.png.meta new file mode 100644 index 0000000..8e76825 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Hover.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 8281de412bbc46b40afdd068d9d2044f +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -2 + maxTextureSize: 64 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: 2 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Normal.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Normal.png new file mode 100644 index 0000000..48e5d69 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f235af101515205559569fdbfdf2be8e4b55f59e49ef189d6e5d23718b0c8b24 +size 21305 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Normal.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Normal.png.meta new file mode 100644 index 0000000..d3d155d --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_Button_Normal.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 3c3493bf8d4a3e74c87521fe3146f305 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_Off.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_Off.png new file mode 100644 index 0000000..f181c78 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_Off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:caa48a80599c60790c4cdb39d6520078800546188ef045c72c7cdeed0555543f +size 3672 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_Off.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_Off.png.meta new file mode 100644 index 0000000..c1e24d5 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_Off.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: f76e5096e35bd46738f38f63f9ab22ea +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_On.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_On.png new file mode 100644 index 0000000..172cd1b --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_On.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f13f08c4d14fcc9e4279c877d3bf0c32e5328626a9218eb337660354755fbef2 +size 3727 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_On.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_On.png.meta new file mode 100644 index 0000000..ad7b7ea --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_AngleVis_On.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: e9803fa21775b4b3dacced048cb0ffdf +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Divider.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Divider.png new file mode 100644 index 0000000..570da03 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Divider.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a81d66d9f19dfe61287ced44766a19a4589775521fbd28dc3c0b30898707d0b +size 2833 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Divider.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Divider.png.meta new file mode 100644 index 0000000..0e157c5 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Divider.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 0e7db4d5bd21647239f661f1b9310dce +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_Off.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_Off.png new file mode 100644 index 0000000..445cba5 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_Off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a938b82e74836782b1dd3b88da07fabd0c6efacf297b34443d2ecef4b92ac82 +size 4148 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_Off.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_Off.png.meta new file mode 100644 index 0000000..63d6d93 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_Off.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 7fd5b20cf2a654b2e870f7a1fc36880c +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_On.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_On.png new file mode 100644 index 0000000..4205a5b --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_On.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b68663ea7213792bf15b8d00216af912bfeb0fd8bfe71ce656b1771f0912d76b +size 4332 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_On.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_On.png.meta new file mode 100644 index 0000000..0c0cbc9 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_3D_On.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: b9070affd779543919170b8284170c7f +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_Off.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_Off.png new file mode 100644 index 0000000..4297083 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_Off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a361917662ec59ccded2cb01d7c65251a62e0ff77dd295cb61254bd4d896207 +size 3332 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_Off.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_Off.png.meta new file mode 100644 index 0000000..ca0dd2b --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_Off.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 4248dedb08feb441b93fb1b4a5ceac45 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_On.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_On.png new file mode 100644 index 0000000..f166f99 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_On.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a6e52e1180dfdd7c2289041fc72bee7c0f2bfcf153c7c30d380619399b86248 +size 3320 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_On.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_On.png.meta new file mode 100644 index 0000000..3a52b48 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Lock_On.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 31dd4d304c9ea41a19bdff12d41f2442 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_Off.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_Off.png new file mode 100644 index 0000000..4784b64 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_Off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cc7d307aec8d9ac0496ad9e55140fb526987e9e8c6e0b89aaf250cfd7dd50c4 +size 3962 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_Off.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_Off.png.meta new file mode 100644 index 0000000..b718272 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_Off.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 14ac2b994b9eeb14ebbf81c00d406878 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_On.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_On.png new file mode 100644 index 0000000..26c9a22 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_On.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dea4e224b618b3ff8155e59a82de5af0e80ed284b1db0b2139d294814c07c64 +size 4053 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_On.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_On.png.meta new file mode 100644 index 0000000..ab9ece3 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_X_On.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 90c5e2cb906f2c0428a8236728c9cc70 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_Off.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_Off.png new file mode 100644 index 0000000..26c8a51 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_Off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dab66f21df55de3e4b6ef9dfd746a827c15ac5f6fb3b5136770b6aa6cea4f6e3 +size 3872 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_Off.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_Off.png.meta new file mode 100644 index 0000000..097442b --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_Off.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 25ff53b61b5edf944ab6f902ec7ea13a +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_On.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_On.png new file mode 100644 index 0000000..54b9219 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_On.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee38b2396f96752615c1293bd33977dd9e8145d7f026f0b8af9629fd0986dfde +size 3983 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_On.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_On.png.meta new file mode 100644 index 0000000..6a70c93 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Y_On.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 24792d4c158d93944b3e7603a9ccac2a +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_Off.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_Off.png new file mode 100644 index 0000000..327c35d --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_Off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01ed55f392b425400b45e7a3da56ec567ca6889f5114d91507ce93fb97f18374 +size 3852 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_Off.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_Off.png.meta new file mode 100644 index 0000000..ec0bab6 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_Off.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: f68445c07f478394091e7b13189298cc +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_On.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_On.png new file mode 100644 index 0000000..50389d5 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_On.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26d88791f8d991bf5795681521fcccefa77c62a0dba8cee9de61b3c9491b7af6 +size 4016 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_On.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_On.png.meta new file mode 100644 index 0000000..e7c193f --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PGrid_Z_On.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 887d21fd78df45749a9c59c9f4d39ba3 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Normal.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Normal.png new file mode 100644 index 0000000..3225bfe --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Normal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ecc1dca8c7c7c7e3fe0b5a7618a1777af9a48a02f84d78d2cc8b62ca4419a90 +size 4075 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Normal.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Normal.png.meta new file mode 100644 index 0000000..7dc8951 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Normal.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 0c98fb088f555430ca86cd7a4211b580 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Pressed.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Pressed.png new file mode 100644 index 0000000..e25cae4 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Pressed.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0425acb5e301f64ef665892afbd2acf4f748c826e944bbe436e5865f99ea078 +size 4067 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Pressed.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Pressed.png.meta new file mode 100644 index 0000000..037c17a --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_PushToGrid_Pressed.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: e30dcbe67edf04243b67502d79861503 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_Off.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_Off.png new file mode 100644 index 0000000..91bcafc --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_Off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df53cdb3347429d5fe492417e0393a658cb9a1f4f92580a39399f6b13d9fc353 +size 3349 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_Off.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_Off.png.meta new file mode 100644 index 0000000..917aeb6 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_Off.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 91564349a1127d64cacbed97d125c1f6 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_On.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_On.png new file mode 100644 index 0000000..571228f --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_On.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f54112dfd7a97a753908d7606de0359cd7d061895b444e667f09adc3d576bb66 +size 3361 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_On.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_On.png.meta new file mode 100644 index 0000000..dad6262 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Snap_On.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: d0b345e53b456764691f9db6fbfd48d4 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_Off.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_Off.png new file mode 100644 index 0000000..44f279f --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_Off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dc6b4201688775da382f3df27fee2604cbba29af8c84ac7b52114899193d561 +size 4006 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_Off.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_Off.png.meta new file mode 100644 index 0000000..0762f59 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_Off.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 76ce1a75a7950114e8619c0810fbd115 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_On.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_On.png new file mode 100644 index 0000000..b5f6bcd --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_On.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75021a5d8f037515f42b73aad0bf4b25f0685a0f8ff27d1904f189d05716d636 +size 4086 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_On.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_On.png.meta new file mode 100644 index 0000000..5d80e99 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_GUI_Vis_On.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 590949d9d6facf84596b0d167ce152dd +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Close.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Close.png new file mode 100644 index 0000000..04b33c2 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Close.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff938299f57c7775d7cc048b8a8c61835c61f9d21db5f295e84d8490fc6739a2 +size 385 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Close.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Close.png.meta new file mode 100644 index 0000000..d7ddef7 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Close.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 289968f5abbae3543a47bb276d719fb4 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -2 + maxTextureSize: 64 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: 2 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Open.png b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Open.png new file mode 100644 index 0000000..0cf8f3f --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Open.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb7750f758d0fea78a678e1b52c314d14b225e46650f7df4ad9c07d245b78777 +size 412 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Open.png.meta b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Open.png.meta new file mode 100644 index 0000000..a067fb7 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/GUI/ProGridsToggles/ProGrids2_MenuExtendo_Open.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 222514fd9bda9394e9658d2fe15f2090 +timeCreated: 18446744011573954816 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -2 + maxTextureSize: 64 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 0 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 64 + resizeAlgorithm: 0 + textureFormat: 2 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/MonoBehaviour.meta b/Assets/Third Party Assets/ProCore/ProGrids/MonoBehaviour.meta new file mode 100644 index 0000000..fa146af --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/MonoBehaviour.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e1ef2d7171751654c973ffe6748a2e73 +folderAsset: yes +timeCreated: 1518451281 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/MonoBehaviour/pg_IgnoreSnap.cs b/Assets/Third Party Assets/ProCore/ProGrids/MonoBehaviour/pg_IgnoreSnap.cs new file mode 100644 index 0000000..7182dc8 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/MonoBehaviour/pg_IgnoreSnap.cs @@ -0,0 +1,19 @@ +#if UNITY_EDITOR + +using UnityEngine; +using System.Collections; + +namespace ProGrids +{ + /** + * Assign this script to a GameObject to tell ProGrids to ignore snapping on this object. + * Child objects are still subject to snapping. + * + * Note - On Unity versions less than 5.2 this will not take effect until after a script + * reload. + */ + [ProGridsNoSnap] + public class pg_IgnoreSnap : MonoBehaviour {} +} + +#endif diff --git a/Assets/Third Party Assets/ProCore/ProGrids/MonoBehaviour/pg_IgnoreSnap.cs.meta b/Assets/Third Party Assets/ProCore/ProGrids/MonoBehaviour/pg_IgnoreSnap.cs.meta new file mode 100644 index 0000000..cb48b83 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/MonoBehaviour/pg_IgnoreSnap.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 31c962280094e7146b53cd8abdfa5957 +timeCreated: 18446744011573954816 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/ProGrids_Documentation.pdf b/Assets/Third Party Assets/ProCore/ProGrids/ProGrids_Documentation.pdf new file mode 100644 index 0000000..53a5049 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/ProGrids_Documentation.pdf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6d8bae80b0de37d53d99c1b3fd5185713c7ace752d5443c81c313f88dd60ec8 +size 237987 diff --git a/Assets/Third Party Assets/ProCore/ProGrids/ProGrids_Documentation.pdf.meta b/Assets/Third Party Assets/ProCore/ProGrids/ProGrids_Documentation.pdf.meta new file mode 100644 index 0000000..3b6eb0e --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/ProGrids_Documentation.pdf.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 78630ceb40a697349acd17dac8865665 +timeCreated: 18446744011573954816 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Shader.meta b/Assets/Third Party Assets/ProCore/ProGrids/Shader.meta new file mode 100644 index 0000000..d6fd2a9 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: afd0a934f6bd3ef4d8408c9c4386e5af +folderAsset: yes +timeCreated: 1518451281 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Shader/pg_GridShader.shader b/Assets/Third Party Assets/ProCore/ProGrids/Shader/pg_GridShader.shader new file mode 100644 index 0000000..276f327 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Shader/pg_GridShader.shader @@ -0,0 +1,75 @@ +// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' + +Shader "Hidden/ProGrids/pg_GridShader" +{ + Properties + { + _AlphaCutoff ("Fade Cutoff", float) = .1 + _AlphaFade ("Fade Start", float) = .6 + _Color ("Color", Color) = ( .5, .5, .5, .8 ) + } + + SubShader + { + Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } + Lighting Off + ZTest LEqual + Blend SrcAlpha OneMinusSrcAlpha + ZWrite Off + + Pass + { + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + + float _AlphaCutoff; + float _AlphaFade; + float4 _Color; + + struct appdata + { + float4 vertex : POSITION; + float3 normal : NORMAL; + float4 color : COLOR; + }; + + struct v2f + { + float4 pos : SV_POSITION; + float4 world : TEXCOORD0; + float4 color : COLOR; + float3 normal : TEXCOORD1; + }; + + v2f vert (appdata v) + { + v2f o; + + o.pos = UnityObjectToClipPos(v.vertex); + o.world = mul(unity_ObjectToWorld, v.vertex); + o.normal = mul(unity_ObjectToWorld, float4(v.normal, 0)).xyz; + o.color = v.color; + + return o; + } + + half4 frag (v2f i) : COLOR + { + float3 viewDir = normalize(_WorldSpaceCameraPos.xyz - i.world.xyz); + float d = abs(dot(i.normal, viewDir)); + float alpha = smoothstep(_AlphaCutoff, _AlphaFade, d); + float4 col = i.color; + col.a *= alpha; + return col; + } + + ENDCG + } + } +} diff --git a/Assets/Third Party Assets/ProCore/ProGrids/Shader/pg_GridShader.shader.meta b/Assets/Third Party Assets/ProCore/ProGrids/Shader/pg_GridShader.shader.meta new file mode 100644 index 0000000..efd8142 --- /dev/null +++ b/Assets/Third Party Assets/ProCore/ProGrids/Shader/pg_GridShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4b9f3440d48c2f04c9c388365e070864 +timeCreated: 18446744011573954816 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: