Example #1
0
        /// <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]);
        }
Example #2
0
 /// <summary>
 /// Initializes this <see cref="HeadHolder"/> instance.
 /// </summary>
 public void Start()
 {
     this.referenceHead = Resources.Load("Prefabs/HEAD") as GameObject;
     this.holder        = gameObject.GetComponent <RemoteMarkerHolder>();
 }