/// <summary> /// 各「次に落ちてくるブロック」更新 /// </summary> /// <param name="tileInfo"></param> /// <param name="target"></param> private void updateNextTile(TileInfo tileInfo, BlockStatus target) { tileInfo.InitializeGrid(blankTilePrefab); Vector3Int center = target.IsLineBlock ? new Vector3Int(1, 1, 0) : new Vector3Int(1, 0, 0); // (0,0)座標のブロック更新 int statIdx = CalcIdx(center.x, center.y, tileInfo.Size.x); tileInfo.TileTypeAry[statIdx] = eachTilePrefabs[target.Type]; // 相対座標分のブロック更新 for (int i = 0; i < SharedConstant.RELATIVE_BLOCK_NUM; i++) { BlockSettingData settingData = SharedConstant.BLOCK_DATA[target.SettingDataIdx]; GridPos diffPos = BoardInfo.CalcRelativeRotatePos(settingData.RelativePos[i], settingData.RotatableNum, target.RotateNum); int expectedIdx = CalcIdx(center.x + diffPos.x, center.y + diffPos.y, tileInfo.Size.x); tileInfo.TileTypeAry[expectedIdx] = eachTilePrefabs[target.Type]; } tileInfo.DrawTile(); }