コード例 #1
0
        protected List <Vector2> GetBlockedCoordinates()
        {
            int            length             = 3;
            List <Vector2> blockedCoordinates = new List <Vector2> ();


            Vector2 baseCoordinateAddition = new Vector2(0, 0);
            Vector2 minimumValue           = new Vector2(0, 0);
            Vector2 maximumValue           = new Vector2(0, 0);
            Vector2 increment = new Vector2(0, 0);

            if (_movementCoordinator.Dir == 0 || _movementCoordinator.Dir == 180)
            {
                baseCoordinateAddition = _movementCoordinator.Dir == 0 ? Vector2.right :
                                         Vector2.left;
                minimumValue = Vector2.up;
                maximumValue = Vector2.down;
            }
            else
            {
                baseCoordinateAddition = _movementCoordinator.Dir == 90 ? Vector2.up :
                                         Vector2.down;
                minimumValue = Vector2.left;
                maximumValue = Vector2.right;
            }

            increment     = maximumValue;
            minimumValue *= length;
            maximumValue *= length;
            Vector2 baseCoordinate  = (Vector2)transform.position + baseCoordinateAddition;
            Vector2 currentPosition = baseCoordinate + minimumValue;

            for (int i = 0; i < 2 * length + 1; i++)
            {
                blockedCoordinates.Add(_tilemapManager.WorldPosToTilePos(currentPosition));
                currentPosition += increment;
            }

            return(blockedCoordinates);
        }