fgm24/Assets/Scripts/Multiplayer/NetworkedGameSetup.cs

45 lines
1.2 KiB
C#
Raw Normal View History

using System;
using System.Collections;
using System.Collections.Generic;
using Unity.Netcode;
using UnityEngine;
using UnityEngine.SceneManagement;
2024-02-09 04:09:08 +01:00
public class NetworkedGameSetup : NetworkBehaviour
{
[SerializeField] private GameObject PlayerPrefab;
private RopeSimulator RopeSim;
private void Start()
{
DontDestroyOnLoad(this);
NetworkManager.Singleton.SceneManager.OnLoadEventCompleted += SceneLoaded;
}
private void SceneLoaded(string sceneName, LoadSceneMode loadSceneMode, List<ulong> clientsCompleted, List<ulong> clientsTimedOut)
{
StartSetupProcedure(clientsCompleted);
}
private void StartSetupProcedure(List<ulong> playerIds)
{
SpawnPlayers(playerIds);
}
private void SpawnPlayers(List<ulong> playerIds)
{
NetworkManager.Singleton.SceneManager.OnLoadEventCompleted -= SceneLoaded;
// Assuming only 2 palyers
if (IsHost)
{
for (int i = 0; i < playerIds.Count; i++)
{
GameObject player = Instantiate(PlayerPrefab, Vector2.up * 3, Quaternion.identity);
player.GetComponent<NetworkObject>().SpawnAsPlayerObject(playerIds[i], true);
}
}
}
}