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

46 lines
1.1 KiB
C#

using SanAndreasUnity.Utilities;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace SanAndreasUnity.Net
{
public class SyncedServerDataObjectSpawner : MonoBehaviour
{
[SerializeField] private GameObject m_syncedServerDataPrefab = null;
private void Awake()
{
m_syncedServerDataPrefab.GetComponentOrLogError<SyncedServerData>();
}
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);
}
}
}