/// <summary>
    /// タイル間の座標をキューに追加
    /// </summary>
    /// <param name="queue"></param>
    /// <param name="monster"></param>
    /// <param name="bmt1"></param>
    /// <param name="bmt2"></param>
    private void EnqueuePosition(Queue <Vector2> queue, BattleMapMonster monster, BattleMapTile bmt1, BattleMapTile bmt2)
    {
        float tmpX  = bmt2.GameObject.transform.position.x - bmt1.GameObject.transform.position.x;
        float diffX = tmpX / (float)MOVE_COUNT_PER_TILE;

        float tmpY  = bmt2.GameObject.transform.position.y - bmt1.GameObject.transform.position.y;
        float diffY = tmpY / (float)MOVE_COUNT_PER_TILE;

        BattleMapMonsterPositionCalculator calculator = new BattleMapMonsterPositionCalculator();

        for (int i = 0; i < MOVE_COUNT_PER_TILE - 1; i++)
        {
            float x = bmt1.GameObject.transform.position.x + (diffX * (i + 1));
            float y = bmt1.GameObject.transform.position.y + (diffY * (i + 1));

            Vector2 pos = calculator.CalculateMonsterPosition(monster, x, y);

            queue.Enqueue(pos);
        }

        // 最後は目的地
        Vector2 lastPos = calculator.CalculateMonsterPosition(monster, bmt2);

        queue.Enqueue(lastPos);
    }
Пример #2
0
    /// <summary>
    /// モンスターの位置の調整
    /// </summary>
    /// <param name="bmt"></param>
    /// <param name="bmm"></param>
    private void ConditionMonsterPosition(BattleMapTile bmt, BattleMapMonster bmm)
    {
        BattleMapMonsterPositionCalculator calculator = new BattleMapMonsterPositionCalculator();

        Vector2 position = calculator.CalculateMonsterPosition(bmm, bmt);

        GameObject monsterGo = bmm.GameObject;

        monsterGo.transform.position = position;

        // 傾けた回数だけ傾ける
        // 一度に傾けるとずれる
        for (int i = 0; i < holder.BattleMapSetting.TiltCount; i++)
        {
            tiltController.Tilt(monsterGo, BattleMapCameraController.TITL_ANGLE);
        }
    }