public void Function(AStarPathTile _aPTile) { if (!AstarPath.active.isScanning) { AstarPath.active.Scan(); } _unitMgrCallback.Invoke(); }
void OnPathComplete(Path _path) { Debug.Log("GetNextMoveDirection Checking Path : " + _path.vectorPath.Count); if (_path.vectorPath.Count > 0) { TargetUnitDistance _tUDis = new TargetUnitDistance(); //_tUDis.TargetUnit = UnitManager.Instance._curUnitsOnTile[i]; _tUDis.DistanceCount = _path.vectorPath.Count; _tUDis.Path = _path; _tUnitDis.Add(_tUDis); } if (_tUnitDis.Count > 0) { TargetUnitDistance _shortestDis = _tUnitDis[0]; for (int i = 0; i < _tUnitDis.Count; i++) { if (_shortestDis.DistanceCount > _tUnitDis[i].DistanceCount) { _shortestDis = _tUnitDis[i]; } } AStarPathTile _nextAStarTile = null; //switch (GetMoveDirection(_shortestDis.Path.vectorPath[0])) //{ // case MoveDirection.Up: // _nextAStarTile = GetTile((int)_curUnit._aStartTile._vec2.x, (int)_curUnit._aStartTile._vec2.y + 1); // break; // case MoveDirection.Down: // _nextAStarTile = GetTile((int)_curUnit._aStartTile._vec2.x, (int)_curUnit._aStartTile._vec2.y - 1); // break; // case MoveDirection.Left: // _nextAStarTile = GetTile((int)_curUnit._aStartTile._vec2.x + 1, (int)_curUnit._aStartTile._vec2.y); // break; // case MoveDirection.Right: // _nextAStarTile = GetTile((int)_curUnit._aStartTile._vec2.x - 1, (int)_curUnit._aStartTile._vec2.y); // break; // case MoveDirection.UpLeft: // _nextAStarTile = GetTile((int)_curUnit._aStartTile._vec2.x + 1, (int)_curUnit._aStartTile._vec2.y + 1); // break; // case MoveDirection.UpRight: // _nextAStarTile = GetTile((int)_curUnit._aStartTile._vec2.x - 1, (int)_curUnit._aStartTile._vec2.y + 1); // break; // case MoveDirection.DownLeft: // _nextAStarTile = GetTile((int)_curUnit._aStartTile._vec2.x + 1, (int)_curUnit._aStartTile._vec2.y - 1); // break; // case MoveDirection.DownRight: // _nextAStarTile = GetTile((int)_curUnit._aStartTile._vec2.x - 1, (int)_curUnit._aStartTile._vec2.y - 1); // break; // case MoveDirection.Stop: // _nextAStarTile = GetTile((int)_curUnit._aStartTile._vec2.x, (int)_curUnit._aStartTile._vec2.y); // break; //} //_curUnit.MoveToTile(_nextAStarTile._tile); } }
void OnPathComplete(Path _path) { AStarPathTile _nextAStarTile = null; int _nextX = 0; int _nextY = 0; //if (_path.vectorPath.Count > 0) // { // Debug.Log("_path.vectorPath[0] - _unit._tr.position : " + (_path.vectorPath[1] - _path.vectorPath[0]) + "Unit Name : " + _unit.name); // switch (GetMoveDirection(_path.vectorPath[1] - _path.vectorPath[0])) // { // case MoveDirection.Up: // _nextX = (int)_unit._aStartTile._vec2.x; // _nextY = (int)_unit._aStartTile._vec2.y + 1; // break; // case MoveDirection.Down: // _nextX = (int)_unit._aStartTile._vec2.x; // _nextY = (int)_unit._aStartTile._vec2.y - 1; // break; // case MoveDirection.Left: // _nextX = (int)_unit._aStartTile._vec2.x-1; // _nextY = (int)_unit._aStartTile._vec2.y; // break; // case MoveDirection.Right: // _nextX = (int)_unit._aStartTile._vec2.x+1; // _nextY = (int)_unit._aStartTile._vec2.y ; // break; // case MoveDirection.UpLeft: // _nextX = (int)_unit._aStartTile._vec2.x-1; // _nextY = (int)_unit._aStartTile._vec2.y + 1; // break; // case MoveDirection.UpRight: // _nextX = (int)_unit._aStartTile._vec2.x+1; // _nextY = (int)_unit._aStartTile._vec2.y +1; // break; // case MoveDirection.DownLeft: // _nextX = (int)_unit._aStartTile._vec2.x -1; // _nextY = (int)_unit._aStartTile._vec2.y - 1; // break; // case MoveDirection.DownRight: // _nextX = (int)_unit._aStartTile._vec2.x+1; // _nextY = (int)_unit._aStartTile._vec2.y - 1; // break; // case MoveDirection.Stop: // _nextX = (int)_unit._aStartTile._vec2.x; // _nextY = (int)_unit._aStartTile._vec2.y; // break; // } // } //else //{ // _nextX = (int)_unit._aStartTile._vec2.x; // _nextY = (int)_unit._aStartTile._vec2.y; //} //_nextAStarTile = GetTile(_nextX, _nextY); //if(_unit._aStartTile != _nextAStarTile) //{ // if (_nextAStarTile._takedTile) // _nextAStarTile = _unit._aStartTile; //} _moveCallback.Invoke(_nextAStarTile); }