예제 #1
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);
        }
    }