コード例 #1
0
ファイル: BattleGlobal.cs プロジェクト: musha-tetsuya/SHARK
    /// <summary>
    /// 基礎回遊ルート取得
    /// </summary>
    public Vector3[] GetBaseMigrationRoute(FishRouteData routeData)
    {
        int pointSize = routeData.pathCreator.path.NumPoints;
        var baseRoute = new Vector3[pointSize * (routeData.loopCount + 1)];

        //基本回遊ルートの作成
        for (int i = 0; i < pointSize; i++)
        {
            int j = routeData.isReverse ? pointSize - 1 - i : i;

            //この時点では-0.5~+0.5の範囲の値
            baseRoute[i] = routeData.GetPoint(j);
            //0f~1fの間に補正
            baseRoute[i] += Vector3.one * 0.5f;
            //エリア内補正
            baseRoute[i] = this.ToFishAreaPosition(baseRoute[i]);
            //見え方回転補正
            baseRoute[i] = this.viewRotation * baseRoute[i];
        }

        //ループ回数分、回遊ルートを追加
        for (int i = 0; i < routeData.loopCount; i++)
        {
            int offset = pointSize * (i + 1);

            for (int j = 0; j < pointSize; j++)
            {
                baseRoute[offset + j] = (i % 2 == 0)
                    ? baseRoute[pointSize - 1 - j]
                    : baseRoute[j];
            }
        }

        return baseRoute;
    }
コード例 #2
0
ファイル: BattleGlobal.cs プロジェクト: musha-tetsuya/SHARK
 /// <summary>
 /// 回遊ルート取得
 /// </summary>
 public Vector3[][] GetMigrationRoute(FishRouteData routeData)
 {
     var baseRoute = this.GetBaseMigrationRoute(routeData);
     var routes = this.GetMigrationRoute(baseRoute, (int)routeData.unitSize, routeData.unitSpread);
     return routes;
 }