Example #1
0
 private void OnDestroy()
 {
     AvatarLost?.Invoke(this);
     if (Type == TargetManager.PlayerType.Primary)
     {
         PrimaryAvatar = null;
     }
     else
     {
         if (SecondaryAvatars.Contains(this))
         {
             SecondaryAvatars.Remove(this);
         }
     }
 }
Example #2
0
    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);
    }