Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// <summary>
- /// Manages the spawning and despawning of networked objects.
- /// </summary>
- public class SpawnManager : NetworkBehaviour
- {
- /// <summary>
- /// Singleton Instance of the SpawnManager.
- /// </summary>
- public static SpawnManager Instance;
- /// <summary>
- /// Reference to the NetworkManager.
- /// </summary>
- [SerializeField]
- private NetworkManager networkManager;
- /// <summary>
- /// Initializes the singleton Instance and sets up event handlers.
- /// </summary>
- void Awake()
- {
- if (Instance == null)
- {
- Instance = this;
- }
- networkManager = InstanceFinder.NetworkManager;
- }
- [ServerRpc(RequireOwnership = false)]
- public void RPC_SpawnObjectAtPosition(GameObject prefab, Scene scene, Vector2 position)
- {
- SpawnObjectAtPosition(prefab, scene, position);
- }
- private void SpawnObjectAtPosition(GameObject prefab, Scene scene, Vector2 position)
- {
- NetworkObject networkObject = networkManager.GetPooledInstantiated(prefab, position, Quaternion.identity, true);
- networkManager.ServerManager.Spawn(networkObject, null, scene);
- }
- /// <summary>
- /// Despawns a networked object.
- /// </summary>
- /// <param name="nob">The networked object to despawn.</param>
- [ServerRpc(RequireOwnership = false)]
- public void RPC_DespawnObject(NetworkObject nob)
- {
- DespawnObject(nob);
- }
- private void DespawnObject(NetworkObject nob)
- {
- networkManager.ServerManager.Despawn(nob);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment