Progress on gmae setup script
This commit is contained in:
parent
81862a21f0
commit
c0d9c685ca
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
@ -9,8 +10,6 @@ public class NetworkedGameSetup : NetworkBehaviour
|
|||
{
|
||||
[SerializeField] private GameObject PlayerPrefab;
|
||||
|
||||
private RopeSimulator RopeSim;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
DontDestroyOnLoad(this);
|
||||
|
@ -19,26 +18,54 @@ public class NetworkedGameSetup : NetworkBehaviour
|
|||
|
||||
private void SceneLoaded(string sceneName, LoadSceneMode loadSceneMode, List<ulong> clientsCompleted, List<ulong> clientsTimedOut)
|
||||
{
|
||||
NetworkManager.Singleton.SceneManager.OnLoadEventCompleted -= SceneLoaded; // Only run once
|
||||
StartSetupProcedure(clientsCompleted);
|
||||
}
|
||||
|
||||
private void StartSetupProcedure(List<ulong> playerIds)
|
||||
{
|
||||
SpawnPlayers(playerIds);
|
||||
GameObject[] players;
|
||||
if (IsHost || IsServer)
|
||||
players = SpawnPlayers(playerIds);
|
||||
else
|
||||
players = GetPlayers(playerIds);
|
||||
InitRope(players);
|
||||
}
|
||||
|
||||
private void SpawnPlayers(List<ulong> playerIds)
|
||||
private GameObject[] GetPlayers(List<ulong> playerIds)
|
||||
{
|
||||
NetworkManager.Singleton.SceneManager.OnLoadEventCompleted -= SceneLoaded;
|
||||
GameObject[] players = new GameObject[playerIds.Count];
|
||||
|
||||
// Assuming only 2 palyers
|
||||
if (IsHost)
|
||||
for (int i = 0; i < playerIds.Count; i++)
|
||||
{
|
||||
ulong playerId = playerIds[i];
|
||||
players[i] = NetworkManager.SpawnManager.SpawnedObjects[playerId].gameObject;
|
||||
}
|
||||
|
||||
return players;
|
||||
}
|
||||
|
||||
private GameObject[] SpawnPlayers(List<ulong> playerIds)
|
||||
{
|
||||
GameObject[] players = new GameObject[playerIds.Count];
|
||||
|
||||
for (int i = 0; i < playerIds.Count; i++)
|
||||
{
|
||||
GameObject player = Instantiate(PlayerPrefab, Vector2.up * 3, Quaternion.identity);
|
||||
player.GetComponent<NetworkObject>().SpawnAsPlayerObject(playerIds[i], true);
|
||||
players[i] = player;
|
||||
}
|
||||
|
||||
return players;
|
||||
}
|
||||
|
||||
private void InitRope(GameObject[] players)
|
||||
{
|
||||
RopeSimulator ropeSim = GetComponentInChildren<RopeSimulator>();
|
||||
|
||||
//// Assuming 2 players
|
||||
//ropeSim.start = new RopeJoint(players[0].transform.position, true);
|
||||
//ropeSim.start = players[1];
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ public class RopeSimulator : MonoBehaviour
|
|||
private bool constrainStickMinLength;
|
||||
|
||||
[SerializeField]
|
||||
RopeJoint start, end;
|
||||
public RopeJoint start, end;
|
||||
|
||||
[SerializeField]
|
||||
float subDivision = 50f;
|
||||
|
|
Loading…
Reference in New Issue