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,
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}

@ -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;

@ -21,7 +21,7 @@ namespace Grid {
[FormerlySerializedAs("gridVisualTypeMaterials")] [SerializeField]
private List<GridVisualTypeMaterial> 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<GridSystemVisualSingle>();
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<GridSystemVisualSingle>();
}
}
}
@ -62,16 +65,16 @@ namespace Grid {
private void ShowGridPositionList(List<GridPosition> 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<GridPosition> 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<GridPosition> 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);
}

@ -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<GridSystem<GridObject>> 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<GridObject> gridSystem = new(width, height, cellSize, floor, FLOOR_HEIGHT, (g, gridPosition) => new(g, gridPosition));
gridSystemList.Add(gridSystem);
}

@ -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;