diff --git a/Assets/Prefabs/Barrel.prefab b/Assets/Prefabs/Barrel.prefab index ab807d28..98811942 100644 --- a/Assets/Prefabs/Barrel.prefab +++ b/Assets/Prefabs/Barrel.prefab @@ -11,6 +11,7 @@ GameObject: - component: {fileID: 1448231662597988608} - component: {fileID: 4569254719215735236} - component: {fileID: 7599129139086020475} + - component: {fileID: 4641926184230923945} m_Layer: 0 m_Name: Barrel m_TagString: Untagged @@ -69,6 +70,19 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1.2, y: 1.2, z: 1.2} m_Center: {x: 0, y: 0.6, z: 0} +--- !u!114 &4641926184230923945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 11884445617071955} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 --- !u!1001 &4388907659789365520 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Column.prefab b/Assets/Prefabs/Column.prefab index 97d7b12b..e18ecee7 100644 --- a/Assets/Prefabs/Column.prefab +++ b/Assets/Prefabs/Column.prefab @@ -12,6 +12,7 @@ GameObject: - component: {fileID: 4963116155799127347} - component: {fileID: 1238427848934008979} - component: {fileID: 711517454325130744} + - component: {fileID: 4788480107850049370} m_Layer: 8 m_Name: Column m_TagString: Untagged @@ -26,13 +27,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2703911731203012470} + serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 3.299621, y: 0, z: 7.631243} m_LocalScale: {x: 2.5, y: 1, z: 2.5} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: -1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &4963116155799127347 MeshFilter: @@ -108,3 +109,16 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 4300000, guid: b45e496b386039141af15f243dd3ac22, type: 3} +--- !u!114 &4788480107850049370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2703911731203012470} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 diff --git a/Assets/Prefabs/Crate.prefab b/Assets/Prefabs/Crate.prefab index a3bc7257..35088515 100644 --- a/Assets/Prefabs/Crate.prefab +++ b/Assets/Prefabs/Crate.prefab @@ -11,6 +11,7 @@ GameObject: - component: {fileID: 9142444727976197465} - component: {fileID: 7802226090513137756} - component: {fileID: 9112269570178995488} + - component: {fileID: 7022040483435700212} m_Layer: 8 m_Name: Crate m_TagString: Untagged @@ -69,6 +70,19 @@ MonoBehaviour: m_EditorClassIdentifier: crateDestroyedPrefab: {fileID: 9142444727976197465, guid: 603b90faed6758ad5af34fed4418f695, type: 3} +--- !u!114 &7022040483435700212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6742052861145951612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 --- !u!1001 &5886015247612728549 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Door.prefab b/Assets/Prefabs/Door.prefab index b4d777c0..2e92a036 100644 --- a/Assets/Prefabs/Door.prefab +++ b/Assets/Prefabs/Door.prefab @@ -11,6 +11,9 @@ GameObject: - component: {fileID: 2919633612836661042} - component: {fileID: 2294899346053832689} - component: {fileID: 9016084264239210161} + - component: {fileID: 8130794712664898222} + - component: {fileID: -794651756643342260} + - component: {fileID: 1155120939993552524} m_Layer: 0 m_Name: Door m_TagString: Untagged @@ -70,6 +73,45 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &8130794712664898222 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6801323546823109225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 +--- !u!114 &-794651756643342260 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6801323546823109225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 +--- !u!114 &1155120939993552524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6801323546823109225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 --- !u!1001 &6683728779329086228 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/InteractSphere.prefab b/Assets/Prefabs/InteractSphere.prefab index cc3a902e..f7ab5d73 100644 --- a/Assets/Prefabs/InteractSphere.prefab +++ b/Assets/Prefabs/InteractSphere.prefab @@ -10,6 +10,7 @@ GameObject: m_Component: - component: {fileID: 6671201164988202032} - component: {fileID: 7062504999363291450} + - component: {fileID: 4518024820338421376} m_Layer: 0 m_Name: InteractSphere m_TagString: Untagged @@ -50,6 +51,19 @@ MonoBehaviour: - {fileID: 2100000, guid: cf2fa3f6570d6e6a199730979f1d7080, type: 2} meshRenderer: {fileID: 1359663710931407205} isGreen: 0 +--- !u!114 &4518024820338421376 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6033424034875735524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 --- !u!1 &8244872666674356924 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Plane.prefab b/Assets/Prefabs/Plane.prefab index f9c42f56..44703386 100644 --- a/Assets/Prefabs/Plane.prefab +++ b/Assets/Prefabs/Plane.prefab @@ -12,6 +12,7 @@ GameObject: - component: {fileID: 3732372307782677125} - component: {fileID: 2228715300700879584} - component: {fileID: 3943989928321416028} + - component: {fileID: 4080379408929934386} m_Layer: 6 m_Name: Plane m_TagString: Untagged @@ -107,3 +108,16 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 9.999999, y: 2.220446e-16, z: 10} m_Center: {x: 0, y: 0, z: 0.0000000060535967} +--- !u!114 &4080379408929934386 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3148356769724797727} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 diff --git a/Assets/Prefabs/Unit.prefab b/Assets/Prefabs/Unit.prefab index e9d2dc52..47d17065 100644 --- a/Assets/Prefabs/Unit.prefab +++ b/Assets/Prefabs/Unit.prefab @@ -535,6 +535,7 @@ GameObject: - component: {fileID: -8304330001806500918} - component: {fileID: -6548637358342564735} - component: {fileID: 3428387880988698014} + - component: {fileID: 4437206634797512319} m_Layer: 7 m_Name: Unit m_TagString: Untagged @@ -718,6 +719,22 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: da9344d67e0d590cb802aabedfabd2a9, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &4437206634797512319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7515914176832744456} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 + dynamicFloorPosition: 1 + ignorRendererList: + - {fileID: 3170260046977714593} --- !u!1 &7904759459253143674 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Wall.prefab b/Assets/Prefabs/Wall.prefab index f6782f4d..93b58cf5 100644 --- a/Assets/Prefabs/Wall.prefab +++ b/Assets/Prefabs/Wall.prefab @@ -12,6 +12,7 @@ GameObject: - component: {fileID: 462218732848497293} - component: {fileID: 5045826003362081950} - component: {fileID: 695854764090121989} + - component: {fileID: 6666505401970889560} m_Layer: 8 m_Name: Wall m_TagString: Untagged @@ -26,13 +27,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3438048684508788708} + serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 4.9373584, y: -0.0000009536743, z: 0.1366415} m_LocalScale: {x: 4, y: 1, z: 10} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: -1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &462218732848497293 MeshFilter: @@ -108,3 +109,16 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 4300000, guid: 9a70db0102eed3c468687c669df871fb, type: 3} +--- !u!114 &6666505401970889560 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3438048684508788708} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 diff --git a/Assets/Prefabs/WallDoorDouble.prefab b/Assets/Prefabs/WallDoorDouble.prefab index f731d038..906b0e5c 100644 --- a/Assets/Prefabs/WallDoorDouble.prefab +++ b/Assets/Prefabs/WallDoorDouble.prefab @@ -11,6 +11,7 @@ GameObject: - component: {fileID: 686072294256164430} - component: {fileID: 8988795639257232531} - component: {fileID: 6017193262191148020} + - component: {fileID: 5831692338177928969} m_Layer: 8 m_Name: WallDoorDouble m_TagString: Untagged @@ -25,13 +26,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7247649765323194955} + serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 4, y: 0.0000038146973, z: 12} m_LocalScale: {x: 2, y: 1, z: 10} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: -1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &8988795639257232531 MeshFilter: @@ -85,3 +86,16 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &5831692338177928969 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7247649765323194955} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a5a73cbbbae15cd2acb85efcfc98557, type: 3} + m_Name: + m_EditorClassIdentifier: + floorHeightOffset: 2 diff --git a/Assets/Scenes/GameScene_MultiFloors.unity b/Assets/Scenes/GameScene_MultiFloors.unity index e5daf756..24e73e06 100644 --- a/Assets/Scenes/GameScene_MultiFloors.unity +++ b/Assets/Scenes/GameScene_MultiFloors.unity @@ -2845,7 +2845,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 330585543} serializedVersion: 2 - m_LocalRotation: {x: 0.3006394, y: 0.000000016410377, z: -0.000000005172915, w: 0.9537379} + m_LocalRotation: {x: 0.3006394, y: -0.000000016410377, z: 0.000000005172915, w: 0.9537379} m_LocalPosition: {x: 3.01, y: 7, z: -6.75} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -4562,7 +4562,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 598754947} serializedVersion: 2 - m_LocalRotation: {x: 0.3006394, y: 0.000000016410377, z: -0.000000005172915, w: 0.9537379} + m_LocalRotation: {x: 0.3006394, y: -0.000000016410377, z: 0.000000005172915, w: 0.9537379} m_LocalPosition: {x: 3.01, y: 7, z: -6.75} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 1 diff --git a/Assets/Scripts/CameraController.cs b/Assets/Scripts/CameraController.cs index 1ff80239..5df1827b 100644 --- a/Assets/Scripts/CameraController.cs +++ b/Assets/Scripts/CameraController.cs @@ -4,7 +4,7 @@ using UnityEngine.Serialization; public class CameraController : MonoBehaviour { private const float minFollowYOffset = 2f; - private const float maxFollowYOffset = 12f; + private const float maxFollowYOffset = 15f; [FormerlySerializedAs("MoveSpeed")] [SerializeField] private float moveSpeed = 10f; @@ -23,8 +23,14 @@ public class CameraController : MonoBehaviour { private CinemachineTransposer cinemachineTransposer; private Vector3 targetFollowOffset; + public static CameraController Instance { get; private set; } - private void Awake() => cinemachineTransposer = cinemachineVirtualCamera.GetCinemachineComponent(); + public float CameraHeight => targetFollowOffset.y; + + private void Awake() { + Instance = this; + cinemachineTransposer = cinemachineVirtualCamera.GetCinemachineComponent(); + } private void Start() => targetFollowOffset = cinemachineTransposer.m_FollowOffset; diff --git a/Assets/Scripts/FloorVisibility.cs b/Assets/Scripts/FloorVisibility.cs new file mode 100644 index 00000000..a052f47c --- /dev/null +++ b/Assets/Scripts/FloorVisibility.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using Grid; +using UnityEngine; + +public class FloorVisibility : MonoBehaviour { + [SerializeField] private float floorHeightOffset = 2f; + [SerializeField] private bool dynamicFloorPosition; + [SerializeField] private List ignorRendererList; + private int floor; + private Renderer[] rendererArray; + private void Awake() => rendererArray = GetComponentsInChildren(true); + + private void Start() { + floor = LevelGrid.GetFloor(transform.position); + if (floor == 0 && !dynamicFloorPosition) Destroy(this); + } + + private void Update() { + if (dynamicFloorPosition) floor = LevelGrid.GetFloor(transform.position); + Show(CameraController.Instance.CameraHeight > LevelGrid.FLOOR_HEIGHT * floor + floorHeightOffset || floor == 0); + } + + private void Show(bool showing) { + foreach (Renderer rendererItem in rendererArray) { + if (ignorRendererList.Contains(rendererItem)) continue; + rendererItem.enabled = showing; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/FloorVisibility.cs.meta b/Assets/Scripts/FloorVisibility.cs.meta new file mode 100644 index 00000000..4c099acb --- /dev/null +++ b/Assets/Scripts/FloorVisibility.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5a5a73cbbbae15cd2acb85efcfc98557 \ No newline at end of file diff --git a/Assets/Scripts/Grid/LevelGrid.cs b/Assets/Scripts/Grid/LevelGrid.cs index 7192fbd1..cb8231af 100644 --- a/Assets/Scripts/Grid/LevelGrid.cs +++ b/Assets/Scripts/Grid/LevelGrid.cs @@ -52,7 +52,7 @@ namespace Grid { public List GetUnitListAtGridPosition(GridPosition gridPosition) => GetGridSystem(gridPosition.Floor).GetGridObject(gridPosition).UnitList; public void RemoveUnitAtGridPosition(GridPosition gridPosition, Unit unit) => GetGridSystem(gridPosition.Floor).GetGridObject(gridPosition).UnitList.Remove(unit); - private static int GetFloor(Vector3 worldPosition) => Mathf.RoundToInt(worldPosition.y / FLOOR_HEIGHT); + public static int GetFloor(Vector3 worldPosition) => Mathf.RoundToInt(worldPosition.y / FLOOR_HEIGHT); public GridPosition GetGridPosition(Vector3 worldPosition) => GetGridSystem(GetFloor(worldPosition)).GetGridPosition(worldPosition); public Vector3 GetWorldPosition(GridPosition gridPosition) => GetGridSystem(gridPosition.Floor).GetWorldPosition(gridPosition); diff --git a/Assets/PathfindingLink.cs b/Assets/Scripts/PathfindingLink.cs similarity index 100% rename from Assets/PathfindingLink.cs rename to Assets/Scripts/PathfindingLink.cs diff --git a/Assets/PathfindingLink.cs.meta b/Assets/Scripts/PathfindingLink.cs.meta similarity index 100% rename from Assets/PathfindingLink.cs.meta rename to Assets/Scripts/PathfindingLink.cs.meta diff --git a/Assets/PathfindingLinkMonoBehaviour.cs b/Assets/Scripts/PathfindingLinkMonoBehaviour.cs similarity index 100% rename from Assets/PathfindingLinkMonoBehaviour.cs rename to Assets/Scripts/PathfindingLinkMonoBehaviour.cs diff --git a/Assets/PathfindingLinkMonoBehaviour.cs.meta b/Assets/Scripts/PathfindingLinkMonoBehaviour.cs.meta similarity index 100% rename from Assets/PathfindingLinkMonoBehaviour.cs.meta rename to Assets/Scripts/PathfindingLinkMonoBehaviour.cs.meta diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index cfac2bcd..955fc6e7 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2023.2.0b4 -m_EditorVersionWithRevision: 2023.2.0b4 (f15431dc5dc1) +m_EditorVersion: 2023.2.0b5 +m_EditorVersionWithRevision: 2023.2.0b5 (da89774450b8)