SanAndreasUnity/Assets/Scripts/Networking/SyncedServerDataObjectSpawner.cs
2021-02-20 02:20:19 +01:00

40 lines
1,013 B
C#

using UnityEngine;
using UnityEngine.SceneManagement;
namespace SanAndreasUnity.Net
{
public class SyncedServerDataObjectSpawner : MonoBehaviour
{
[SerializeField] private GameObject m_syncedServerDataPrefab = null;
private void Start()
{
NetManager.Instance.onServerStatusChanged += OnServerStatusChanged;
SceneManager.activeSceneChanged += OnActiveSceneChanged;
}
private void OnServerStatusChanged()
{
// scene is not changed yet, so the object will get destroyed when it changes
//Spawn();
}
private void OnActiveSceneChanged(Scene arg0, Scene arg1)
{
Spawn();
}
private void Spawn()
{
if (!NetStatus.IsServer)
return;
if (null != SyncedServerData.Instance)
return;
var go = Instantiate(m_syncedServerDataPrefab);
NetManager.Spawn(go);
}
}
}