From 0f86b2c38fe893ecfa4f172589a058efe7ad0958 Mon Sep 17 00:00:00 2001 From: Sascha Date: Mon, 14 Aug 2023 16:15:54 +0200 Subject: [PATCH] Multi-Floors GridSystemVisual --- Assets/Scenes/GameScene_MultiFloors.unity | 50 ++++++++++++++-------- Assets/Scripts/Actions/UnitActionSystem.cs | 2 +- Assets/Scripts/Grid/GridSystemVisual.cs | 33 +++++++------- Assets/Scripts/Grid/LevelGrid.cs | 6 ++- Assets/Scripts/Unit.cs | 1 + 5 files changed, 55 insertions(+), 37 deletions(-) diff --git a/Assets/Scenes/GameScene_MultiFloors.unity b/Assets/Scenes/GameScene_MultiFloors.unity index 8ce5abdf..da2fabfe 100644 --- a/Assets/Scenes/GameScene_MultiFloors.unity +++ b/Assets/Scenes/GameScene_MultiFloors.unity @@ -248,17 +248,17 @@ PrefabInstance: - target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0, type: 3} propertyPath: m_LocalPosition.x - value: -4 + value: -12 objectReference: {fileID: 0} - target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0, type: 3} propertyPath: m_LocalPosition.y - value: 0 + value: 3 objectReference: {fileID: 0} - target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0, type: 3} propertyPath: m_LocalPosition.z - value: 2 + value: 18 objectReference: {fileID: 0} - target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0, type: 3} @@ -2565,7 +2565,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 @@ -4199,7 +4199,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 @@ -7347,6 +7347,12 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1248695410 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, + type: 3} + m_PrefabInstance: {fileID: 3319954897312816834} + m_PrefabAsset: {fileID: 0} --- !u!1 &1251970106 GameObject: m_ObjectHideFlags: 0 @@ -11791,6 +11797,12 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: adae4f13d5306d4518212283c7892fd0, type: 3} +--- !u!4 &1567691642 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, + type: 3} + m_PrefabInstance: {fileID: 1609162222} + m_PrefabAsset: {fileID: 0} --- !u!4 &1585202640 stripped Transform: m_CorrespondingSourceObject: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0, @@ -11897,7 +11909,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1917598936} m_Modifications: - target: {fileID: 2228715300700879584, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -11907,7 +11919,7 @@ PrefabInstance: - target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_Name - value: Plane (1) + value: Floor2 objectReference: {fileID: 0} - target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -11922,7 +11934,7 @@ PrefabInstance: - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalScale.x - value: 0.7872622 + value: 0.043738976 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -11932,12 +11944,12 @@ PrefabInstance: - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalScale.z - value: 3.0345888 + value: 0.3034589 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalPosition.x - value: 1.0478 + value: 0.14121817 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -11947,7 +11959,7 @@ PrefabInstance: - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalPosition.z - value: 25.2337 + value: 2.77207 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -15686,6 +15698,8 @@ Transform: - {fileID: 1284326430} - {fileID: 568614337} - {fileID: 690773386} + - {fileID: 1248695410} + - {fileID: 1567691642} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!224 &1939846702 stripped @@ -16623,7 +16637,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1917598936} m_Modifications: - target: {fileID: 2228715300700879584, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -16633,7 +16647,7 @@ PrefabInstance: - target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_Name - value: Plane + value: Floor1 objectReference: {fileID: 0} - target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -16648,7 +16662,7 @@ PrefabInstance: - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalScale.x - value: 20 + value: 1.1111667 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -16658,12 +16672,12 @@ PrefabInstance: - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalScale.z - value: 20 + value: 2 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalPosition.x - value: 0.38729477 + value: 0.1045216 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -16673,7 +16687,7 @@ PrefabInstance: - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} propertyPath: m_LocalPosition.z - value: -0.096824646 + value: 0.23901753 objectReference: {fileID: 0} - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, type: 3} @@ -16987,8 +17001,6 @@ SceneRoots: - {fileID: 275919989} - {fileID: 410087041} - {fileID: 832575519} - - {fileID: 3319954897312816834} - - {fileID: 1609162222} - {fileID: 1051832114} - {fileID: 1917598936} - {fileID: 1491138602} diff --git a/Assets/Scripts/Actions/UnitActionSystem.cs b/Assets/Scripts/Actions/UnitActionSystem.cs index ef9bee18..1343674a 100644 --- a/Assets/Scripts/Actions/UnitActionSystem.cs +++ b/Assets/Scripts/Actions/UnitActionSystem.cs @@ -52,7 +52,7 @@ namespace Actions { private void Start() => SetSelectedUnit(SelectedUnit); private void Update() { - Debug.Log(LevelGrid.Instance.GetGridPosition(MouseWorld.GetPosition())); + // Debug.Log(LevelGrid.Instance.GetGridPosition(MouseWorld.GetPosition())); if (IsBusy) return; if (!TurnSystem.Instance.IsPlayerTurn) return; if (EventSystem.current.IsPointerOverGameObject()) return; diff --git a/Assets/Scripts/Grid/GridSystemVisual.cs b/Assets/Scripts/Grid/GridSystemVisual.cs index 4061a8f1..20349174 100644 --- a/Assets/Scripts/Grid/GridSystemVisual.cs +++ b/Assets/Scripts/Grid/GridSystemVisual.cs @@ -21,7 +21,7 @@ namespace Grid { [FormerlySerializedAs("gridVisualTypeMaterials")] [SerializeField] private List gridVisualTypeMaterialList; - private GridSystemVisualSingle[,] gridSystemVisualSingleArray; + private GridSystemVisualSingle[,,] gridSystemVisualSingleArray; private static GridSystemVisual Instance { get; set; } private void Awake() { @@ -37,12 +37,15 @@ namespace Grid { private void Start() { int width = LevelGrid.Instance.GetWidth(); int height = LevelGrid.Instance.GetHeight(); - gridSystemVisualSingleArray = new GridSystemVisualSingle[width, height]; - - for (int x = 0; x < width; x++) { - for (int z = 0; z < height; z++) { - Transform gridSystemVisualSingleTransform = Instantiate(gridSystemVisualSinglePrefab, LevelGrid.Instance.GetWorldPosition(new(x, z, 0)), Quaternion.identity); - gridSystemVisualSingleArray[x, z] = gridSystemVisualSingleTransform.GetComponent(); + int floorAmount = LevelGrid.Instance.FloorAmount; + gridSystemVisualSingleArray = new GridSystemVisualSingle[width, height, floorAmount]; + + for (int xPosition = 0; xPosition < width; xPosition++) { + for (int zPosition = 0; zPosition < height; zPosition++) { + for (int floor = 0; floor < floorAmount; floor++) { + Transform gridSystemVisualSingleTransform = Instantiate(gridSystemVisualSinglePrefab, LevelGrid.Instance.GetWorldPosition(new(xPosition, zPosition, floor)), Quaternion.identity); + gridSystemVisualSingleArray[xPosition, zPosition, floor] = gridSystemVisualSingleTransform.GetComponent(); + } } } @@ -62,16 +65,16 @@ namespace Grid { private void ShowGridPositionList(List gridPositionList, GridVisualType gridVisualType) { foreach (GridPosition gridPosition in gridPositionList) - gridSystemVisualSingleArray[gridPosition.XPosition, gridPosition.ZPosition].Show(GetGridVisualTypeMaterial(gridVisualType)); + gridSystemVisualSingleArray[gridPosition.XPosition, gridPosition.ZPosition, gridPosition.Floor].Show(GetGridVisualTypeMaterial(gridVisualType)); } private void ShowGridPositionRange(GridPosition gridPosition, int range, GridVisualType gridVisualType) { List gridPositionList = new(); - for (int x = -range; x <= range; x++) { - for (int z = -range; z <= range; z++) { - GridPosition testGridPosition = gridPosition + new GridPosition(x, z, 0); + for (int xPosition = -range; xPosition <= range; xPosition++) { + for (int zPosition = -range; zPosition <= range; zPosition++) { + GridPosition testGridPosition = gridPosition + new GridPosition(xPosition, zPosition, 0); if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions - if (Mathf.Abs(x) + Mathf.Abs(z) > range) continue; //Out of Range + if (Mathf.Abs(xPosition) + Mathf.Abs(zPosition) > range) continue; //Out of Range gridPositionList.Add(testGridPosition); } } @@ -81,9 +84,9 @@ namespace Grid { private void ShowGridPositionRangeSquare(GridPosition gridPosition, int range, GridVisualType gridVisualType) { List gridPositionList = new(); - for (int x = -range; x <= range; x++) { - for (int z = -range; z <= range; z++) { - GridPosition testGridPosition = gridPosition + new GridPosition(x, z, 0); + for (int xPosition = -range; xPosition <= range; xPosition++) { + for (int zPosition = -range; zPosition <= range; zPosition++) { + GridPosition testGridPosition = gridPosition + new GridPosition(xPosition, zPosition, 0); if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions gridPositionList.Add(testGridPosition); } diff --git a/Assets/Scripts/Grid/LevelGrid.cs b/Assets/Scripts/Grid/LevelGrid.cs index 5b14f831..5df7a1c6 100644 --- a/Assets/Scripts/Grid/LevelGrid.cs +++ b/Assets/Scripts/Grid/LevelGrid.cs @@ -13,10 +13,12 @@ namespace Grid { [SerializeField] private int width = 20; [SerializeField] private int height = 20; [SerializeField] private float cellSize = 2f; - [SerializeField] private int floorAmount = 1; + [SerializeField] private int floorAmount; private List> gridSystemList; + public int FloorAmount => floorAmount; + public static LevelGrid Instance { get; private set; } private void Awake() { @@ -29,7 +31,7 @@ namespace Grid { Instance = this; gridSystemList = new(); - for (int floor = 0; floor < floorAmount; floor++) { + for (int floor = 0; floor < FloorAmount; floor++) { GridSystem gridSystem = new(width, height, cellSize, floor, FLOOR_HEIGHT, (g, gridPosition) => new(g, gridPosition)); gridSystemList.Add(gridSystem); } diff --git a/Assets/Scripts/Unit.cs b/Assets/Scripts/Unit.cs index 44e798b4..6c63cc12 100644 --- a/Assets/Scripts/Unit.cs +++ b/Assets/Scripts/Unit.cs @@ -30,6 +30,7 @@ public class Unit : MonoBehaviour { private void Start() { GridPosition = LevelGrid.Instance.GetGridPosition(transform.position); + // Debug.Log(GridPosition); LevelGrid.Instance.AddUnitAtGridPosition(GridPosition, this); TurnSystem.Instance.OnTurnChanged += TurnSystem_OnTurnChanged; HealthSystem.OnDead += HealthSystem_OnDead;