Ejemplo n.º 1
0
    //指定座標のcellを生成してworldに追加
    private static void buildCell(int aX, int aY, int aZ)
    {
        int     tZ    = mWorld.mSize.z - 1 - aZ;
        MapCell tCell = new MapCell();

        MapTile tTile;
        //平面階層
        int tChipNum = mData.mStratums[aY].mFeild[tZ][aX];

        MapFileData.Tile tTileData = mData.mChip.get(tChipNum);
        if (tTileData != null)
        {
            tTile = createTile(tTileData);
            //階層に追加
            tTile.transform.SetParent(mWorld.mStratums[aY].mTiles.transform, false);
            tTile.changeLayer(MyMap.mStratumLayerNum[aY]);
            tCell.mTile = tTile;
            //座標設定
            tTile.mMapPosition = new MapPosition(new Vector3(aX, aY, aZ));
            //encount
            if (tTileData.mEncountKey != "")
            {
                tCell.mEncountKey       = tTileData.mEncountKey;
                tCell.mEncountFrequency = tTileData.mEncountFrequency;
            }
        }
        //+0.5階層
        tChipNum  = mData.mStratums[aY].mHalfHeightFeild[tZ][aX];
        tTileData = mData.mChip.get(tChipNum);
        if (tTileData != null)
        {
            tTile = createTile(tTileData);
            //階層に追加
            tTile.transform.SetParent(mWorld.mStratums[aY].mHalfHeightTiles.transform, false);
            tTile.changeLayer(MyMap.mStratumLayerNum[aY]);
            tCell.mHalfHeightTile = tTile;
            //座標設定
            tTile.mMapPosition = new MapPosition(new Vector3(aX, aY, aZ));
            //encount
            if (tTileData.mEncountKey != "")
            {
                tCell.mEncountKey       = tTileData.mEncountKey;
                tCell.mEncountFrequency = tTileData.mEncountFrequency;
            }
        }

        mWorld.mCells[aX, aY, aZ] = tCell;
        //2D描画でのY方向サイズ更新
        if (tCell.mTile != null || tCell.mHalfHeightTile != null)
        {
            if (mWorld.mOrthographySizeY < aY + aZ)
            {
                mWorld.mOrthographySizeY = aY + aZ;
            }
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 1マスを生成
    /// </summary>
    /// <returns>マス</returns>
    /// <param name="aCellData">マスのデータ</param>
    public static MapTile createTile(MapFileData.Tile aTileData)
    {
        string tPrefabPath = aTileData.mTile;
        //ロード
        MapTile tTile = MyBehaviour.createObjectFromResources <MapTile>(MyMap.mMapResourcesDirectory + "/tile/" + tPrefabPath);

        //属性にcellを割り当て
        foreach (TilePhysicsAttribute tAttribute in tTile.GetComponentsInChildren <TilePhysicsAttribute>())
        {
            tAttribute.mBehaviour = tTile;
        }
        //エンカウント

        return(tTile);
    }