void Update()
    {
        if (TargetCamera != null)
        {
            Vector3 fwd = Vector3.Normalize(transform.position - TargetCamera.transform.position);

            if (Vector3.Dot(fwd, m_BaseForward) > 0)
            {
                transform.forward = m_BaseForward;
            }
            else
            {
                transform.forward = -m_BaseForward;
            }
        }

        if (VirtualCameraManger == null)
        {
            VirtualCameraManger = Manager.Get <VirtualCameraManager>();
        }

        if (VirtualCameraManger == null)
        {
            Debug.LogWarning("Virtual Camera Manager not present.");
            return;
        }

        if (Vector3.Distance(VirtualCameraManger.transform.position, transform.position) < ShowDistance)
        {
            m_Visibility += Time.deltaTime / ShowDuration;
        }
        else
        {
            m_Visibility -= Time.deltaTime / HideDuration;
        }

        m_Visibility = Mathf.Clamp(m_Visibility, 0, 1);

        if (m_Visibility == 0)
        {
            Panel.Root.SetActive(false);
        }
        else
        {
            Vector2 scale = new Vector2(PanelSizeXAnimation.Evaluate(m_Visibility), PanelSizeYAnimation.Evaluate(m_Visibility));
            Panel.Root.SetActive(true);
            Panel.Size       = new Vector2(scale.x * m_DefaultSize.x, scale.y * m_DefaultSize.y);
            Panel.PanelColor = m_DefaultPanelColor * PanelColorAnimation.Evaluate(m_Visibility);
            Panel.TitleColor = m_DefaultTitleColor * TextColorAnimation.Evaluate(m_Visibility);
            Panel.BodyColor  = m_DefaultBodyColor * TextColorAnimation.Evaluate(m_Visibility);
            Panel.Layout();

            foreach (var obj in Panel.OtherSubObjects)
            {
                obj.transform.localScale = new Vector3(scale.x, scale.y, 1);
                //if (m_Visibility == 1 && !obj.activeSelf) obj.SetActive(true);
                //if (m_Visibility < 1 && obj.activeSelf) obj.SetActive(false);
            }
        }
    }
Example #2
0
    public CinemachineVirtualCameraBase GetCamera(VirtualCameraManager _manager, int _ind)
    {
        var sw = GetSwitch(_manager);

        if (sw != null)
        {
            return(sw.GetCamera(_ind));
        }
        return(null);
    }
Example #3
0
 void DeactivateOthers(VirtualCameraManager _manager)
 {
     for (int i = 0; i < cinemachineSwitches.Length; i++)
     {
         var sw = cinemachineSwitches[i];
         if (_manager != sw.Manager)
         {
             sw.DeactivateAllCameras();
         }
     }
 }
Example #4
0
 void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         instance = this;
     }
 }
 void Start()
 {
     PanelColorAnimation = DefaultGradient();
     TextColorAnimation  = DefaultGradient();
     m_DefaultSize       = Panel.Size;
     m_DefaultPanelColor = Panel.PanelColor;
     m_DefaultTitleColor = Panel.TitleColor;
     m_DefaultBodyColor  = Panel.BodyColor;
     VirtualCameraManger = Manager.Get <VirtualCameraManager>();
     m_BaseForward       = transform.forward;
     TargetCamera        = VirtualCameraManger.Camera;
 }
Example #6
0
 CinemachineSwitch GetSwitch(VirtualCameraManager _manager)
 {
     for (int i = 0; i < cinemachineSwitches.Length; i++)
     {
         var sw = cinemachineSwitches[i];
         if (_manager == sw.Manager)
         {
             return(sw);
         }
     }
     Debug.LogError("could not find switch with manager: " + _manager);
     return(null);
 }
    private void Awake()
    {
        if (_instance == null)
        {
            _instance = this;
        }
        else
        {
            Debug.LogWarning("Multiple VCAM managers present!");
        }

        _virtualCameras = GameObject.FindGameObjectsWithTag(_identifierTag);
        ToggleVCam(_defaultVirtualCamera);
    }
Example #8
0
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
        }

        mainCamera = Camera.main;

        _virtualCameras = this.GetComponentsInChildren <VirtualCameraBhv>();
    }
Example #9
0
    public void SwitchCamera(VirtualCameraManager _manager, int _ind, bool _ignorePriority = false, System.Action _successCallback = null)
    {
        var sw = GetSwitch(_manager);

        if (sw != null)
        {
            if (!_ignorePriority)
            {
                if (!IsHigherPriority(sw))
                {
                    return;
                }
            }

            curPriority = sw.Priority;
            sw.SwitchCamera(_ind);
            DeactivateOthers(_manager);
            if (_successCallback != null)
            {
                _successCallback.Invoke();
            }
        }
    }
Example #10
0
 public void Start()
 {
     m_VCM      = Manager.Get <VirtualCameraManager>();
     m_Char     = GetComponent <CharacterController>();
     m_Animator = GetComponent <Animator>();
 }
 private void Start()
 {
     m_VCM = Manager.Get <VirtualCameraManager>();
 }