// Use this for initialization void Start() { if (networkManager == null && FindObjectsOfType <VRTracker.Network.VRT_NetworkManager>().Length > 0) { networkManager = FindObjectsOfType <VRTracker.Network.VRT_NetworkManager>()[0]; } playersBoundary = new List <VRT_PlayerBoundaryRenderer> (); if (playerNetworkIdentity == null) { playerNetworkIdentity = GetComponentInParent <NetworkIdentity> (); } if (!playerNetworkIdentity.isLocalPlayer) { return; } networkManager.OnPlayerJoin += OnPlayerJoin; networkManager.OnPlayerLeave += OnPlayerLeave; if (playerBoundary == null) { playerBoundary = gameObject.GetComponent <VRT_PlayerBoundaryRenderer> (); } if (playerBoundary == null) { Debug.LogError("The player does not have a PlayerBoundaryRenderer"); } FindPlayersBoundary(); }
/// <summary> /// Callback to handle new player joining the game /// </summary> /// <param name="player">Player.</param> void OnPlayerJoin(VRT_PlayerInstance player) { VRT_PlayerBoundaryRenderer playerBoundaryRenderer = player.GetComponent <VRT_PlayerBoundaryRenderer> (); if (playerBoundaryRenderer != null) { playersBoundary.Add(playerBoundaryRenderer); } }
/// <summary> /// Callback to handle new player leaving the game /// </summary> /// <param name="player">Player.</param> void OnPlayerLeave(VRT_PlayerInstance player) { VRT_PlayerBoundaryRenderer playerBoundaryRenderer = player.GetComponent <VRT_PlayerBoundaryRenderer> (); if (playerBoundaryRenderer != null) { playersBoundary.Remove(playerBoundaryRenderer); } }
/// <summary> /// Finds all players boundaries using the PlayerBoundary Tag. /// </summary> void FindPlayersBoundary() { playersBoundary = new List <VRT_PlayerBoundaryRenderer> (); GameObject[] playerBoundaryObjects = GameObject.FindGameObjectsWithTag("PlayerBoundary"); // Find boundaries using Tag foreach (GameObject playerBoundaryObject in playerBoundaryObjects) { VRT_PlayerBoundaryRenderer renderer = playerBoundaryObject.GetComponent <VRT_PlayerBoundaryRenderer> (); if (playerBoundaryObject != null && renderer != null && renderer != playerBoundary) { playersBoundary.Add(playerBoundaryObject.GetComponent <VRT_PlayerBoundaryRenderer>()); } } }