private void OnDestroy() { AvatarLost?.Invoke(this); if (Type == TargetManager.PlayerType.Primary) { PrimaryAvatar = null; } else { if (SecondaryAvatars.Contains(this)) { SecondaryAvatars.Remove(this); } } }
private void Start() { _view = GetComponent <PhotonView>(); _virtualCity = FindObjectOfType <VirtualCity>(); if (_view.IsMine) { Mine = this; } if (TargetManager.Instance.Type == TargetManager.PlayerType.Primary) { _deskzone = FindObjectOfType <Deskzone>(); } if ((string)GetComponent <PhotonView>().Owner.CustomProperties["Class"] == TargetManager.PlayerType.Primary.ToString()) { Type = TargetManager.PlayerType.Primary; if (TargetManager.Instance.Type == TargetManager.PlayerType.Primary) { _deskzone.Inside += () => { ToggleVisibility(false); }; _deskzone.Outside += () => { ToggleVisibility(true); }; } } else { Type = TargetManager.PlayerType.Secondary; SecondaryAvatars.Add(this); if (TargetManager.Instance.Type == TargetManager.PlayerType.Primary) { var conePrefab = FindObjectOfType <WarpzoneManager>().ViewConePrefab; var cone = Instantiate(conePrefab); cone.transform.parent = transform; cone.transform.localPosition = conePrefab.transform.localPosition; cone.transform.localRotation = conePrefab.transform.localRotation; cone.transform.localScale = conePrefab.transform.localScale; cone.GetComponent <Renderer>().enabled = false; } } AvatarCreated?.Invoke(this); }