diff --git a/Assets/Scenes/TestScene.unity b/Assets/Scenes/TestScene.unity index 4f35693..16dfa3e 100644 --- a/Assets/Scenes/TestScene.unity +++ b/Assets/Scenes/TestScene.unity @@ -959,6 +959,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1067101117} + - component: {fileID: 1067101118} m_Layer: 0 m_Name: GameManager m_TagString: GameController @@ -980,6 +981,18 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1067101118 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1067101116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb5ee5f3d2923ee4faeaf50ed35ab2f5, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1111479331 stripped GameObject: m_CorrespondingSourceObject: {fileID: 2550463727306718371, guid: 823e8b39d52b71b4eb5a91dbc8d6d59e, type: 3} diff --git a/Assets/Scripts/GameManager/PlayerMaster.cs b/Assets/Scripts/GameManager/PlayerMaster.cs new file mode 100644 index 0000000..83220bc --- /dev/null +++ b/Assets/Scripts/GameManager/PlayerMaster.cs @@ -0,0 +1,51 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +/* +JOIN +1. Wenn ein Spieler joined wird sichergestellt, dass er nicht in der Liste ist (fürs error handling). +2. Dann wird er in die Liste "Players" eingetragen und ein Eintrag in der "health" liste wird mit dem selben index gemacht. + +LEAVE +1. Index von dem Spieler, in der Liste, wird gesucht +2. Spieler wird aus der Liste entfernt +3. health index vom spieler wird auch entfernt + +*/ +public class PlayerMaster : MonoBehaviour +{ + [SerializeField] private List Players = new List(); + [SerializeField] private List Health = new List(); + + private void Start() + { + Players.AddRange(GameObject.FindGameObjectsWithTag("Player")); + } + + public void OnPlayerJoin(GameObject player) + { + Debug.Log("Player joined"); + if (!Players.Contains(player)) + { + Players.Add(player); + Debug.Log("Player added to list"); + } + else + { + Debug.LogError("Player already exits in list"); + } + } + + public void OnPlayerLeave(GameObject player) + { + Debug.Log("Player left"); + if (Players.Contains(player)) + { + Players.Remove(player); + } + else + { + Debug.LogError("Player not found in Players-list"); + } + } +} diff --git a/Assets/Scripts/GameManager/PlayerMaster.cs.meta b/Assets/Scripts/GameManager/PlayerMaster.cs.meta new file mode 100644 index 0000000..7d2a5b1 --- /dev/null +++ b/Assets/Scripts/GameManager/PlayerMaster.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cb5ee5f3d2923ee4faeaf50ed35ab2f5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: