using System.Collections; using System.Collections.Generic; using Mirror; using UnityEngine; public class FarmingManager : NetworkBehaviour { public static FarmingManager instance; void Awake(){ instance = this; } void Start() { if(!isServer){ Destroy(this); } for(int i = 0; i farmingItems; void Update() { for(int i = 0; i timeToReSpawn ){ Spawn(i); } } } } public void Spawn(int index){ FarmingPositionEntry item = farmingItems[index]; GameObject spawn = Instantiate(item.prefab , item.spawnLocation.position , Quaternion.identity); farmingItems[index].spawnedItem = spawn; NetworkServer.Spawn(spawn); } public void DestroyItem(GameObject item){ int targetIndex =0; for(int i=0; i < farmingItems.Count; i++){ if(farmingItems[i].spawnedItem == item){ targetIndex = i; break; } } farmingItems[targetIndex].destroyedTime = Time.time; farmingItems[targetIndex].spawnedItem = null; NetworkServer.Destroy(item); } } [System.Serializable] public class FarmingPositionEntry{ public Transform spawnLocation; public GameObject prefab; public GameObject spawnedItem; public float destroyedTime; }