Synchronise Tilemap changes over network
I have this current code for destroying part of a tilemap. I've been told to use caching to synchronise this across all players, but I'm unsure how to do so using Fusion.
public Tilemap tilemap;
//private Cache Cache;
public void DestroyTerrain(Vector3 location, float radius, PhysicsMaterial2D weapon)
{
for(float x = -radius; x < radius; x += 0.16f)
{
for (float y = -radius; y < radius; y += 0.16f)
{
Vector3Int tilePos = tilemap.WorldToCell(location + new Vector3(x, y, 0));
float distance = Vector3.Distance(tilemap.WorldToCell(location), tilePos);
if (distance <= radius)
{
TileBase tile = tilemap.GetTile(tilePos);
if (tile != null)
{
if (MaterialEnums.MaterialEnums.Instance.WOOD.Contains(tile.GetInstanceID()))
{
//Caching.AddCache("sneed");
if (weapon == (PhysicsMaterial2D)Resources.Load("PhysicsMaterials/C4"))
{
DestroyTile(tilePos);
continue;
}
}
else
{
DestroyTile(tilePos);
}
}
}
}
}
}
void DestroyTile(Vector3Int tilePos)
{
tilemap.SetTile(tilePos, null);
}