コード例 #1
0
 public void Function(AStarPathTile _aPTile)
 {
     if (!AstarPath.active.isScanning)
     {
         AstarPath.active.Scan();
     }
     _unitMgrCallback.Invoke();
 }
コード例 #2
0
ファイル: UnitMoveManager.cs プロジェクト: hoidol/ZzapMuti
    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);
        }
    }
コード例 #3
0
    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);
    }