private void Awake() { Instance = this; var mapWidth = 10; var mapHeight = 8; var origin = new Vector3(0, 0); _grid = new Grid <GridCombatSystem.GridObject>( mapWidth, mapHeight, cellSize, origin, (g, x, y) => new GridCombatSystem.GridObject(g, x, y) ); gridPathfinding = new GridPathfinding(origin + new Vector3(1, 1) * cellSize * .5f, new Vector3(mapWidth, mapHeight) * cellSize, cellSize); gridPathfinding.RaycastWalkable(); var gridTile = Resources.Load("Sprites/grid", typeof(GameObject)) as GameObject; gridTile.transform.localScale = new Vector3(14, 14, 10); gridPathfinding.PrintMap((vec, size, color) => Instantiate(gridTile, vec, Quaternion.identity)); _gridRespawnLeftContainer = GameObject.Find("GridRespawnLeftContainer").transform; _gridRespawnRightContainer = GameObject.Find("GridRespawnRightContainer").transform; }
private void Start() { // TODO nice to have - scriptable objects for sizes _nodeSize = 17; var mapWidth = 10; var mapHeight = 8; _worldOrigin = new Vector3(0, 0); gridPathfinding = new GridPathfinding( _worldOrigin + new Vector3(1, 1) * _nodeSize * .5f, new Vector3(mapWidth, mapHeight) * _nodeSize, _nodeSize ); gridPathfinding.RaycastWalkable(); gridPathfinding.PrintMap((vec, size, color) => Instantiate(walkablePrefab, vec, Quaternion.identity)); foreach (var objectOnMap in objectsOnMap) { if (objectOnMap == null) { return; } var origin = new Vector3(0, 0); var cellSize = 17; var cellCenter = cellSize / 2; // Objects has to be in objectOnMap list in order to snap to grid var objectOnMapTransformPosition = objectOnMap.transform.position; // _objectOnGridPosition.x = Mathf.Floor(objectOnMapTransformPosition.x / _nodeSize) * _nodeSize; // _objectOnGridPosition.y = Mathf.Floor(objectOnMapTransformPosition.y / _nodeSize) * _nodeSize; // _objectOnGridPosition.z = 0; objectOnMap.transform.position = new Vector3(cellCenter + gameObject.transform.position.x * cellSize, cellCenter + gameObject.transform.position.y * cellSize) + new Vector3(1, 1) * 0.5f; } if (testObjectForGridSnapTests == null) { Debug.Log("No test object is provided"); _debugMode = false; } ; }