/// <summary> /// Gets a local player by its id. /// </summary> /// <param name="id">The player id.</param> /// <returns>The <see cref="RemotePlayerMarker"/> that represents the player.</returns> public RemotePlayerMarker GetPlayer(int id) { if (!this.players.ContainsKey(id)) { if (this.referenceHead == null) { this.referenceHead = Resources.Load("Prefabs/HEAD") as GameObject; } GameObject head = GameObject.Instantiate(this.referenceHead); RemotePlayerMarker marker = head.GetComponent <RemotePlayerMarker>(); Assert.IsNotNull(marker, "Reference Player Marker has no `RemotePlayerMarker` script attached"); this.players.Add(id, marker); marker.transform.SetParent(this.transform); marker.Id = PlayerIdOffset + id; if (this.holder == null) { this.holder = gameObject.GetComponent <RemoteMarkerHolder>(); } this.holder.AddMarker(marker); this.Follow(marker); } return(this.players[id]); }
/// <summary> /// Initializes this <see cref="HeadHolder"/> instance. /// </summary> public void Start() { this.referenceHead = Resources.Load("Prefabs/HEAD") as GameObject; this.holder = gameObject.GetComponent <RemoteMarkerHolder>(); }