SanAndreasUnity/Assets/Scripts/Networking/SyncedServerDataObjectSpawner.cs

47 lines
1.1 KiB
C#
Raw Normal View History

2021-02-20 21:54:25 +00:00
using SanAndreasUnity.Utilities;
using UnityEngine;
2021-02-20 01:20:19 +00:00
using UnityEngine.SceneManagement;
namespace SanAndreasUnity.Net
{
public class SyncedServerDataObjectSpawner : MonoBehaviour
{
[SerializeField] private GameObject m_syncedServerDataPrefab = null;
2021-02-20 21:54:25 +00:00
private void Awake()
{
m_syncedServerDataPrefab.GetComponentOrLogError<SyncedServerData>();
}
2021-02-20 01:20:19 +00:00
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);
}
}
}