Exemplo n.º 1
0
        private static void DrawGizmos(CinemachineCollider collider, GizmoType type)
        {
            CinemachineVirtualCameraBase vcam = (collider != null) ? collider.VirtualCamera : null;

            if (vcam != null && collider.enabled)
            {
                Color oldColor    = Gizmos.color;
                bool  isLive      = CinemachineCore.Instance.IsLive(vcam);
                Color feelerColor = isLive
                    ? CinemachineSettings.CinemachineCoreSettings.ActiveGizmoColour
                    : CinemachineSettings.CinemachineCoreSettings.InactiveGizmoColour;
                Color hitColour = isLive ? Color.white : Color.grey;

                Vector3 pos = vcam.State.FinalPosition;
                if (collider.m_PreserveLineOfSight && vcam.State.HasLookAt)
                {
                    Vector3 forwardFeelerVector = (vcam.State.ReferenceLookAt - pos).normalized;
                    float   distance            = collider.m_LineOfSightFeelerDistance;
                    Gizmos.color = collider.IsTargetObscured ? hitColour : feelerColor;
                    Gizmos.DrawLine(pos, pos + forwardFeelerVector * distance);
                }

                if (collider.m_UseCurbFeelers)
                {
                    Quaternion orientation = vcam.State.FinalOrientation;
                    foreach (CinemachineCollider.CompiledCurbFeeler feeler in collider.Feelers)
                    {
                        Vector3 worldDirection = orientation * feeler.LocalVector;
                        Gizmos.color = feeler.IsHit ? hitColour : feelerColor;
                        Gizmos.DrawLine(pos, pos + worldDirection * feeler.RayDistance);
                    }
                }
                Gizmos.color = oldColor;
            }
        }
        public override void SetUp()
        {
            var camera = CreateGameObject("MainCamera", typeof(Camera), typeof(CinemachineBrain));

            m_Brain = camera.GetComponent <CinemachineBrain>();

            m_Vcam          = CreateGameObject("CM Vcam", typeof(CinemachineVirtualCamera), typeof(CinemachineCollider)).GetComponent <CinemachineVirtualCamera>();
            m_Vcam.Priority = 100;
            m_Vcam.Follow   = CreateGameObject("Follow Object").transform;
            var framingTransposer = m_Vcam.AddCinemachineComponent <CinemachineFramingTransposer>();

            framingTransposer.m_CameraDistance = 5f;
            m_Collider                       = m_Vcam.GetComponent <CinemachineCollider>();
            m_Collider.m_Strategy            = CinemachineCollider.ResolutionStrategy.PullCameraForward;
            m_Collider.m_CollideAgainst      = 1;
            m_Collider.m_AvoidObstacles      = true;
            m_Collider.m_SmoothingTime       = 0;
            m_Collider.m_Damping             = 0;
            m_Collider.m_DampingWhenOccluded = 0;
            m_Vcam.AddExtension(m_Collider);

            base.SetUp();

            // Manual update is needed because when waiting for physics frame, we may pass 1-3 frames. Without manual
            // update the test won't be deterministic, because we would update 1-3 times, instead of just once.
            m_Brain.m_UpdateMethod = CinemachineBrain.UpdateMethod.ManualUpdate;
        }
Exemplo n.º 3
0
        private void Awake()
        {
            Cinemachine          = GetComponentInParent <CinemachineVirtualCamera>();
            _orbiter             = Cinemachine.GetCinemachineComponent <CinemachineOrbitalTransposer>();
            _composer            = Cinemachine.GetCinemachineComponent <CinemachineComposer>();
            _cinemachineCollider = GetComponent <CinemachineCollider>();


            _controlAxisValueMin = _orbiter.m_XAxis.m_MinValue;
            _controlAxisValueMax = _orbiter.m_XAxis.m_MaxValue;
        }
Exemplo n.º 4
0
    // Use this for initialization
    void Start()
    {
        if (ColliderExtension != null && ColliderExtension.gameObject != null)
        {
            _cache = ColliderExtension.gameObject.GetComponent <CinemachineCollider>();

            _freeLook = _cache.VirtualCamera as CinemachineFreeLook;
        }

        TargetObscuredVariable.GetVariable(variableTarget);
        CameraWasDisplaced.GetVariable(variableTarget);
    }
    private void Start()
    {
        lookAtBall      = false;
        vFreeCam        = transform.GetComponent <CinemachineFreeLook>();
        collCineMachine = transform.GetComponent <CinemachineCollider>();
        if (GameObject.FindGameObjectWithTag("Ball") != null)
        {
            ballLookAtPoint = GameObject.FindGameObjectWithTag("Ball").transform;
        }
        playerLookAtPoint = vFreeCam.LookAt;

        varSet = transform.GetComponent <VirtualCamVarSet>();
    }
Exemplo n.º 6
0
    void Start()
    {
        _touchField     = FindObjectOfType <FixedTouchField>();
        _mainCam        = GetComponent <CinemachineFreeLook>();
        _cameraCollider = GetComponent <CinemachineCollider>();

        _mainCam.Follow = player.transform.Find("LookPoint");
        _mainCam.LookAt = player.transform.Find("LookPoint");
        frontCam.LookAt = player.transform.Find("LookPoint");
        letfCam.LookAt  = player.transform.Find("LookPoint");

        //_mainCam.m_BindingMode = CinemachineTransposer.BindingMode.SimpleFollowWithWorldUp;

        _cameraCollider.m_IgnoreTag = "Object";
        _cameraCollider.m_MinimumDistanceFromTarget = 0.1f;

        //1,2초 뒤에 각각의 함수를 실행해라
        Invoke("setCam1", 1);
        Invoke("setCam2", 2);
    }
Exemplo n.º 7
0
 private void Start()
 {
     cineCollider = GetComponent <CinemachineCollider>();
     composer     = GetComponent <CinemachineVirtualCamera>().GetCinemachineComponent <CinemachineComposer>();
     transposer   = GetComponent <CinemachineVirtualCamera>().GetCinemachineComponent <CinemachineTransposer>();
     oSensitivity = sensitivity;
     oMaxLook     = maxLook;
     oMinLook     = minLook;
     oFollowX     = transposer.m_FollowOffset.x;
     oFollowY     = transposer.m_FollowOffset.y;
     oFollowZ     = transposer.m_FollowOffset.z;
     oXDamp       = transposer.m_XDamping;
     oYDamp       = transposer.m_YDamping;
     oZDamp       = transposer.m_ZDamping;
     oTrackedX    = composer.m_TrackedObjectOffset.x;
     oTrackedY    = composer.m_TrackedObjectOffset.y;
     oTrackedZ    = composer.m_TrackedObjectOffset.z;
     oHDamp       = composer.m_HorizontalDamping;
     oVDamp       = composer.m_VerticalDamping;
     oSoftW       = composer.m_SoftZoneWidth;
     oSoftH       = composer.m_SoftZoneHeight;
 }
Exemplo n.º 8
0
        private static void DrawColliderGizmos(CinemachineCollider collider, GizmoType type)
        {
            CinemachineVirtualCameraBase vcam = (collider != null) ? collider.VirtualCamera : null;

            if (vcam != null && collider.enabled)
            {
                Color   oldColor = Gizmos.color;
                Vector3 pos      = vcam.State.FinalPosition;
                if (collider.m_PreserveLineOfSight && vcam.State.HasLookAt)
                {
                    Gizmos.color = CinemachineColliderPrefs.FeelerColor;
                    if (collider.m_CameraRadius > 0)
                    {
                        Gizmos.DrawWireSphere(pos, collider.m_CameraRadius);
                    }

                    Vector3 forwardFeelerVector = (vcam.State.ReferenceLookAt - pos).normalized;
                    float   distance            = collider.m_DistanceLimit;
                    Gizmos.DrawLine(pos, pos + forwardFeelerVector * distance);

                    // Show the avoidance path, for debugging
                    List <List <Vector3> > debugPaths = collider.DebugPaths;
                    foreach (var path in debugPaths)
                    {
                        Gizmos.color = CinemachineColliderPrefs.FeelerHitColor;
                        Vector3 p0 = vcam.State.ReferenceLookAt;
                        foreach (var p in path)
                        {
                            Gizmos.DrawLine(p0, p);
                            p0 = p;
                        }
                        Gizmos.DrawLine(p0, pos);
                    }
                }
                Gizmos.color = oldColor;
            }
        }
        private static void DrawColliderGizmos(CinemachineCollider collider, GizmoType type)
        {
            CinemachineVirtualCameraBase vcam = (collider != null) ? collider.VirtualCamera : null;

            if (vcam != null && collider.enabled)
            {
                Color oldColor    = Gizmos.color;
                bool  isLive      = CinemachineCore.Instance.IsLive(vcam);
                Color feelerColor = isLive
                    ? CinemachineSettings.CinemachineCoreSettings.ActiveGizmoColour
                    : CinemachineSettings.CinemachineCoreSettings.InactiveGizmoColour;
                Color hitColour = isLive ? Color.white : Color.grey;

                Vector3 pos = vcam.State.FinalPosition;
                if (collider.m_PreserveLineOfSight && vcam.State.HasLookAt)
                {
                    Vector3 forwardFeelerVector = (vcam.State.ReferenceLookAt - pos).normalized;
                    float   distance            = collider.m_DistanceLimit;
                    Gizmos.color = collider.IsTargetObscured(vcam.LiveChildOrSelf) ? hitColour : feelerColor;
                    Gizmos.DrawLine(pos, pos + forwardFeelerVector * distance);
                }
                Gizmos.color = oldColor;
            }
        }