Multi-Floors GridSystemVisual

MultiFloors
Sascha 2023-08-14 16:15:54 +07:00
parent c7d0389e17
commit 0f86b2c38f
5 changed files with 55 additions and 37 deletions

@ -248,17 +248,17 @@ PrefabInstance:
- target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0, - target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0,
type: 3} type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -4 value: -12
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0, - target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0,
type: 3} type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: 0 value: 3
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0, - target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0,
type: 3} type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 2 value: 18
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0, - target: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0,
type: 3} type: 3}
@ -2565,7 +2565,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 330585543} m_GameObject: {fileID: 330585543}
serializedVersion: 2 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_LocalPosition: {x: 3.01, y: 7, z: -6.75}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
@ -4199,7 +4199,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 598754947} m_GameObject: {fileID: 598754947}
serializedVersion: 2 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_LocalPosition: {x: 3.01, y: 7, z: -6.75}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1 m_ConstrainProportionsScale: 1
@ -7347,6 +7347,12 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 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 --- !u!1 &1251970106
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -11791,6 +11797,12 @@ PrefabInstance:
m_AddedGameObjects: [] m_AddedGameObjects: []
m_AddedComponents: [] m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: adae4f13d5306d4518212283c7892fd0, type: 3} 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 --- !u!4 &1585202640 stripped
Transform: Transform:
m_CorrespondingSourceObject: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0, m_CorrespondingSourceObject: {fileID: 2266715941421909531, guid: adae4f13d5306d4518212283c7892fd0,
@ -11897,7 +11909,7 @@ PrefabInstance:
serializedVersion: 2 serializedVersion: 2
m_Modification: m_Modification:
serializedVersion: 3 serializedVersion: 3
m_TransformParent: {fileID: 0} m_TransformParent: {fileID: 1917598936}
m_Modifications: m_Modifications:
- target: {fileID: 2228715300700879584, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 2228715300700879584, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
@ -11907,7 +11919,7 @@ PrefabInstance:
- target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
propertyPath: m_Name propertyPath: m_Name
value: Plane (1) value: Floor2
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
@ -11922,7 +11934,7 @@ PrefabInstance:
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
propertyPath: m_LocalScale.x propertyPath: m_LocalScale.x
value: 0.7872622 value: 0.043738976
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
@ -11932,12 +11944,12 @@ PrefabInstance:
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
propertyPath: m_LocalScale.z propertyPath: m_LocalScale.z
value: 3.0345888 value: 0.3034589
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 1.0478 value: 0.14121817
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
@ -11947,7 +11959,7 @@ PrefabInstance:
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 25.2337 value: 2.77207
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
@ -15686,6 +15698,8 @@ Transform:
- {fileID: 1284326430} - {fileID: 1284326430}
- {fileID: 568614337} - {fileID: 568614337}
- {fileID: 690773386} - {fileID: 690773386}
- {fileID: 1248695410}
- {fileID: 1567691642}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!224 &1939846702 stripped --- !u!224 &1939846702 stripped
@ -16623,7 +16637,7 @@ PrefabInstance:
serializedVersion: 2 serializedVersion: 2
m_Modification: m_Modification:
serializedVersion: 3 serializedVersion: 3
m_TransformParent: {fileID: 0} m_TransformParent: {fileID: 1917598936}
m_Modifications: m_Modifications:
- target: {fileID: 2228715300700879584, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 2228715300700879584, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
@ -16633,7 +16647,7 @@ PrefabInstance:
- target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
propertyPath: m_Name propertyPath: m_Name
value: Plane value: Floor1
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3148356769724797727, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
@ -16648,7 +16662,7 @@ PrefabInstance:
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
propertyPath: m_LocalScale.x propertyPath: m_LocalScale.x
value: 20 value: 1.1111667
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
@ -16658,12 +16672,12 @@ PrefabInstance:
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
propertyPath: m_LocalScale.z propertyPath: m_LocalScale.z
value: 20 value: 2
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: 0.38729477 value: 0.1045216
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
@ -16673,7 +16687,7 @@ PrefabInstance:
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: -0.096824646 value: 0.23901753
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c, - target: {fileID: 3964987777475266848, guid: 2d93c5e81eadff14392ac35ae4869c9c,
type: 3} type: 3}
@ -16987,8 +17001,6 @@ SceneRoots:
- {fileID: 275919989} - {fileID: 275919989}
- {fileID: 410087041} - {fileID: 410087041}
- {fileID: 832575519} - {fileID: 832575519}
- {fileID: 3319954897312816834}
- {fileID: 1609162222}
- {fileID: 1051832114} - {fileID: 1051832114}
- {fileID: 1917598936} - {fileID: 1917598936}
- {fileID: 1491138602} - {fileID: 1491138602}

@ -52,7 +52,7 @@ namespace Actions {
private void Start() => SetSelectedUnit(SelectedUnit); private void Start() => SetSelectedUnit(SelectedUnit);
private void Update() { private void Update() {
Debug.Log(LevelGrid.Instance.GetGridPosition(MouseWorld.GetPosition())); // Debug.Log(LevelGrid.Instance.GetGridPosition(MouseWorld.GetPosition()));
if (IsBusy) return; if (IsBusy) return;
if (!TurnSystem.Instance.IsPlayerTurn) return; if (!TurnSystem.Instance.IsPlayerTurn) return;
if (EventSystem.current.IsPointerOverGameObject()) return; if (EventSystem.current.IsPointerOverGameObject()) return;

@ -21,7 +21,7 @@ namespace Grid {
[FormerlySerializedAs("gridVisualTypeMaterials")] [SerializeField] [FormerlySerializedAs("gridVisualTypeMaterials")] [SerializeField]
private List<GridVisualTypeMaterial> gridVisualTypeMaterialList; private List<GridVisualTypeMaterial> gridVisualTypeMaterialList;
private GridSystemVisualSingle[,] gridSystemVisualSingleArray; private GridSystemVisualSingle[,,] gridSystemVisualSingleArray;
private static GridSystemVisual Instance { get; set; } private static GridSystemVisual Instance { get; set; }
private void Awake() { private void Awake() {
@ -37,12 +37,15 @@ namespace Grid {
private void Start() { private void Start() {
int width = LevelGrid.Instance.GetWidth(); int width = LevelGrid.Instance.GetWidth();
int height = LevelGrid.Instance.GetHeight(); int height = LevelGrid.Instance.GetHeight();
gridSystemVisualSingleArray = new GridSystemVisualSingle[width, height]; int floorAmount = LevelGrid.Instance.FloorAmount;
gridSystemVisualSingleArray = new GridSystemVisualSingle[width, height, floorAmount];
for (int x = 0; x < width; x++) {
for (int z = 0; z < height; z++) { for (int xPosition = 0; xPosition < width; xPosition++) {
Transform gridSystemVisualSingleTransform = Instantiate(gridSystemVisualSinglePrefab, LevelGrid.Instance.GetWorldPosition(new(x, z, 0)), Quaternion.identity); for (int zPosition = 0; zPosition < height; zPosition++) {
gridSystemVisualSingleArray[x, z] = gridSystemVisualSingleTransform.GetComponent<GridSystemVisualSingle>(); 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<GridSystemVisualSingle>();
}
} }
} }
@ -62,16 +65,16 @@ namespace Grid {
private void ShowGridPositionList(List<GridPosition> gridPositionList, GridVisualType gridVisualType) { private void ShowGridPositionList(List<GridPosition> gridPositionList, GridVisualType gridVisualType) {
foreach (GridPosition gridPosition in gridPositionList) 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) { private void ShowGridPositionRange(GridPosition gridPosition, int range, GridVisualType gridVisualType) {
List<GridPosition> gridPositionList = new(); List<GridPosition> gridPositionList = new();
for (int x = -range; x <= range; x++) { for (int xPosition = -range; xPosition <= range; xPosition++) {
for (int z = -range; z <= range; z++) { for (int zPosition = -range; zPosition <= range; zPosition++) {
GridPosition testGridPosition = gridPosition + new GridPosition(x, z, 0); GridPosition testGridPosition = gridPosition + new GridPosition(xPosition, zPosition, 0);
if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions 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); gridPositionList.Add(testGridPosition);
} }
} }
@ -81,9 +84,9 @@ namespace Grid {
private void ShowGridPositionRangeSquare(GridPosition gridPosition, int range, GridVisualType gridVisualType) { private void ShowGridPositionRangeSquare(GridPosition gridPosition, int range, GridVisualType gridVisualType) {
List<GridPosition> gridPositionList = new(); List<GridPosition> gridPositionList = new();
for (int x = -range; x <= range; x++) { for (int xPosition = -range; xPosition <= range; xPosition++) {
for (int z = -range; z <= range; z++) { for (int zPosition = -range; zPosition <= range; zPosition++) {
GridPosition testGridPosition = gridPosition + new GridPosition(x, z, 0); GridPosition testGridPosition = gridPosition + new GridPosition(xPosition, zPosition, 0);
if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions if (!LevelGrid.Instance.IsValidGridPosition(testGridPosition)) continue; //Only return valid grid positions
gridPositionList.Add(testGridPosition); gridPositionList.Add(testGridPosition);
} }

@ -13,10 +13,12 @@ namespace Grid {
[SerializeField] private int width = 20; [SerializeField] private int width = 20;
[SerializeField] private int height = 20; [SerializeField] private int height = 20;
[SerializeField] private float cellSize = 2f; [SerializeField] private float cellSize = 2f;
[SerializeField] private int floorAmount = 1; [SerializeField] private int floorAmount;
private List<GridSystem<GridObject>> gridSystemList; private List<GridSystem<GridObject>> gridSystemList;
public int FloorAmount => floorAmount;
public static LevelGrid Instance { get; private set; } public static LevelGrid Instance { get; private set; }
private void Awake() { private void Awake() {
@ -29,7 +31,7 @@ namespace Grid {
Instance = this; Instance = this;
gridSystemList = new(); gridSystemList = new();
for (int floor = 0; floor < floorAmount; floor++) { for (int floor = 0; floor < FloorAmount; floor++) {
GridSystem<GridObject> gridSystem = new(width, height, cellSize, floor, FLOOR_HEIGHT, (g, gridPosition) => new(g, gridPosition)); GridSystem<GridObject> gridSystem = new(width, height, cellSize, floor, FLOOR_HEIGHT, (g, gridPosition) => new(g, gridPosition));
gridSystemList.Add(gridSystem); gridSystemList.Add(gridSystem);
} }

@ -30,6 +30,7 @@ public class Unit : MonoBehaviour {
private void Start() { private void Start() {
GridPosition = LevelGrid.Instance.GetGridPosition(transform.position); GridPosition = LevelGrid.Instance.GetGridPosition(transform.position);
// Debug.Log(GridPosition);
LevelGrid.Instance.AddUnitAtGridPosition(GridPosition, this); LevelGrid.Instance.AddUnitAtGridPosition(GridPosition, this);
TurnSystem.Instance.OnTurnChanged += TurnSystem_OnTurnChanged; TurnSystem.Instance.OnTurnChanged += TurnSystem_OnTurnChanged;
HealthSystem.OnDead += HealthSystem_OnDead; HealthSystem.OnDead += HealthSystem_OnDead;