Example #1
0
    /// <summary>
    /// 清除cell資料
    /// </summary>
    /// <param name="x"></param>
    /// <param name="z"></param>
    public void EraseCellData(int x, int z)
    {
        int       id        = MapUtility.CoordinateToId(x, z, MapDataCollection.MapSizeX);
        MapObject mapObject = MapObjectDataCollection.GetMapObjectById(id);

        if (mapObject != null)
        {
            MapObjectDataCollection.RemoveMapObject(id);
        }

        MapDataCollection.WriteCellData(id, UnitType.NONE, Vector3.one);
    }
Example #2
0
    /// <summary>
    /// 清除cell資料
    /// </summary>
    /// <param name="assetCellData"></param>
    public void EraseCellData(AssetCellData assetCellData)
    {
        MapObject mapObject = assetCellData.MapObj;

        if (mapObject != null)
        {
            int xIndex = -1;
            int zIndex = -1;
            MapUtility.IdToCoordinate(mapObject.Id, MapSizeX, ref xIndex, ref zIndex);
            MapDataCollection.WriteCellData(xIndex, zIndex, assetCellData.Size, UnitType.NONE, assetCellData.ObjData.Height);
            MapObjectDataCollection.RemoveObjectData(mapObject.Id, assetCellData.ObjData);
        }
    }
Example #3
0
    /// <summary>
    /// 更新cell資料
    /// </summary>
    /// <param name="prefabName"></param>
    /// <param name="x"></param>
    /// <param name="z"></param>
    /// <param name="height"></param>
    /// <param name="assetSize"></param>
    /// <param name="rotation"></param>
    /// <param name="unitType"></param>
    public void UpdateCellData(string prefabName, int x, int z, float height, Vector3 assetSize, Quaternion rotation, UnitType unitType)
    {
        if (MapDataCollection.CanBuildOnTheMap(x, z, height, assetSize))
        {
            int       id        = MapUtility.CoordinateToId(x, z, MapDataCollection.MapSizeX);
            MapObject mapObject = MapObjectDataCollection.GetMapObjectById(id);
            if (mapObject == null)
            {
                mapObject = MapObjectDataCollection.AddMapObject(id);
            }

            MapObject.ObjectData o = MapObjectDataCollection.AddObjectData(id);
            o.PrefabName = prefabName;
            o.Height     = height;
            o.Rotation   = rotation;

            MapDataCollection.WriteCellData(x, z, assetSize, unitType, height);

            GameObject obj = DrawingMap.DrawMapObjectData(mapObject, o, CenterPosition, MapSizeX, MapSizeZ, x, z, mapObjectParent.transform);
            onCreateMapObject(obj);
            MapObjectDataCollection.RaiseFinishAddObjectData(o);
        }
    }