Пример #1
0
    void Start()
    {
        cinemachineBrain = GetComponent <CinemachineBrain>();
        blendDuration    = cinemachineBrain.m_DefaultBlend.m_Time;

        playerTransform = GameObject.FindGameObjectWithTag("dreyever").transform;
        state           = playerTransform.GetComponent <State>();

        levelBoundsInfo = Camera.main.GetComponent <LevelBoundsInfo>();

        currentCameraHeight = FindNearestCameraHeight();

        StartFollowing();
    }
Пример #2
0
        static void OnCameraCut(CinemachineBrain brain)
        {
            // Debug.Log("Camera cut event");
            PostProcessLayer postFX = brain.PostProcessingComponent as PostProcessLayer;

            if (postFX == null)
            {
                brain.PostProcessingComponent = null;   // object deleted
            }
            else
            {
                postFX.ResetHistory();
            }
        }
        static void ApplyPostFX(CinemachineBrain brain)
        {
            //UnityEngine.Profiling.Profiler.BeginSample("CinemachinePostProcessing.ApplyPostFX");
            PostProcessLayer ppLayer = brain.PostProcessingComponent as PostProcessLayer;

            if (ppLayer == null || !ppLayer.enabled || ppLayer.volumeLayer == 0)
            {
                return;
            }

            CameraState state                = brain.CurrentCameraState;
            int         numBlendables        = state.NumCustomBlendables;
            List <PostProcessVolume> volumes = GetDynamicBrainVolumes(brain, ppLayer, numBlendables);

            for (int i = 0; i < volumes.Count; ++i)
            {
                volumes[i].weight        = 0;
                volumes[i].sharedProfile = null;
                volumes[i].profile       = null;
            }
            PostProcessVolume firstVolume = null;
            int numPPblendables           = 0;

            for (int i = 0; i < numBlendables; ++i)
            {
                var b = state.GetCustomBlendable(i);
                CinemachinePostProcessing src = b.m_Custom as CinemachinePostProcessing;
                if (!(src == null)) // in case it was deleted
                {
                    PostProcessVolume v = volumes[i];
                    if (firstVolume == null)
                    {
                        firstVolume = v;
                    }
                    v.sharedProfile = src.Profile;
                    v.isGlobal      = true;
                    v.priority      = float.MaxValue - (numBlendables - i) - 1;
                    v.weight        = b.m_Weight;
                    ++numPPblendables;
                }
#if true // set this to true to force first weight to 1
                // If more than one volume, then set the frst one's weight to 1
                if (numPPblendables > 1)
                {
                    firstVolume.weight = 1;
                }
#endif
            }
            //UnityEngine.Profiling.Profiler.EndSample();
        }
Пример #4
0
        protected virtual void OnGUI()
        {
            if (Target == null)
            {
                return;
            }

            // Draw the camera guides
            if (!Target.IsValid || !CinemachineSettings.CinemachineCoreSettings.ShowInGameGuides)
            {
                return;
            }

            var vcam = Target.VirtualCamera;
            CinemachineBrain brain = CinemachineCore.Instance.FindPotentialTargetBrain(vcam);

            if (brain == null || (brain.OutputCamera.activeTexture != null && CinemachineCore.Instance.BrainCount > 1))
            {
                return;
            }

            // Screen guides
            bool isLive = brain.IsLive(vcam, true);

            mScreenGuideEditor.OnGUI_DrawGuides(isLive, brain.OutputCamera, Target.VcamState.Lens, true);

            // Draw an on-screen gizmo for the target
            if (Target.LookAtTarget != null && isLive)
            {
                Vector3 targetScreenPosition = brain.OutputCamera.WorldToScreenPoint(Target.TrackedPoint);
                if (targetScreenPosition.z > 0)
                {
                    targetScreenPosition.y = Screen.height - targetScreenPosition.y;

                    GUI.color = CinemachineSettings.ComposerSettings.TargetColour;
                    Rect  r    = new Rect(targetScreenPosition, Vector2.zero);
                    float size = (CinemachineSettings.ComposerSettings.TargetSize
                                  + CinemachineScreenComposerGuides.kGuideBarWidthPx) / 2;
                    GUI.DrawTexture(r.Inflated(new Vector2(size, size)), Texture2D.whiteTexture);
                    size -= CinemachineScreenComposerGuides.kGuideBarWidthPx;
                    if (size > 0)
                    {
                        Vector4 overlayOpacityScalar
                                  = new Vector4(1f, 1f, 1f, CinemachineSettings.ComposerSettings.OverlayOpacity);
                        GUI.color = Color.black * overlayOpacityScalar;
                        GUI.DrawTexture(r.Inflated(new Vector2(size, size)), Texture2D.whiteTexture);
                    }
                }
            }
        }
Пример #5
0
 /// <summary>
 /// Signal that the virtual camera's content is discontinuous WRT the previous frame.
 /// If the camera is live, then all CinemachineBrains that are showing it will send a cut event.
 /// </summary>
 public void GenerateCameraCutEvent(ICinemachineCamera vcam)
 {
     if (vcam != null)
     {
         for (int i = 0; i < BrainCount; ++i)
         {
             CinemachineBrain b = GetActiveBrain(i);
             if (b != null && b.IsLive(vcam))
             {
                 b.m_CameraCutEvent.Invoke(b);
             }
         }
     }
 }
Пример #6
0
    void Start()
    {
        _characterController = GetComponent <CharacterController>();
        _cameraBrain         = cam.GetComponent <CinemachineBrain>();
        _rgbColorFilter      = cam.GetComponent <CameraFilterPack_Color_RGB>();
        _anomalyFilter       = cam.GetComponent <CameraFilterPack_3D_Anomaly>();

        _rgbColorFilter.ColorRGB = _colorModoSaru;
        _anomalyFilter.Intensity = 0;
        maxSpeed       = moveSpeed;
        initialSpeed   = maxSpeed;
        _xAxisMaxSpeed = PlayerManager.instance.cameraCinemachine.m_XAxis.m_MaxSpeed;
        _yAxisMaxSpeed = PlayerManager.instance.cameraCinemachine.m_YAxis.m_MaxSpeed;
    }
        void PlaceReticle(CinemachineBrain brain)
        {
            if (brain == null || brain != Brain || ReticleImage == null || brain.OutputCamera == null)
            {
                return;
            }
            PlaceTarget(); // To eliminate judder
            CameraState state = brain.CurrentCameraState;
            var         cam   = brain.OutputCamera;
            var         r     = cam.WorldToScreenPoint(transform.position);
            var         r2    = new Vector2(r.x - cam.pixelWidth * 0.5f, r.y - cam.pixelHeight * 0.5f);

            ReticleImage.anchoredPosition = r2;
        }
Пример #8
0
    //*******************************//
    //    MonoBehaviour Functions    //
    //*******************************//

    private void Awake()
    {
        if (Instance == null)
        {
            Instance = this;
            DontDestroyOnLoad(gameObject);
        }
        else
        {
            Destroy(this);
        }

        m_brain = GetComponent <CinemachineBrain>();
    }
Пример #9
0
    private void OnTriggerStay2D(Collider2D collision)
    {
        if (keyDown)
        {
            Vector3 offset = connectedDoor.transform.position - player.transform.position;
            player.transform.position += offset;

            cameraBrain = Camera.main.GetComponent <CinemachineBrain>();
            CinemachineVirtualCamera virtualCamera = cameraBrain.ActiveVirtualCamera.VirtualCameraGameObject.GetComponent <CinemachineVirtualCamera>();
            virtualCamera.OnTargetObjectWarped(player.transform, offset);

            keyDown = false;
        }
    }
Пример #10
0
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else if (instance != this)
     {
         Destroy(gameObject);
     }
     DontDestroyOnLoad(gameObject);
     mainCamera = GetComponent <Camera>();
     brain      = GetComponent <CinemachineBrain>();
 }
Пример #11
0
    // Start is called before the first frame update
    void Start()
    {
        nearest = null;

        Inventory = gameObject.GetComponent <Inventory>();

        interactText = GameObject.FindGameObjectWithTag("InteractText");

        interactText.SetActive(false);

        magicIcons = GameObject.FindGameObjectWithTag("SpellList");

        brain = Camera.main.GetComponent <CinemachineBrain>();
    }
Пример #12
0
    private void OnTimelineStop()
    {
        CinemachineBrain brain = CameraControll.Instance.gameObject.GetComponent <CinemachineBrain>();
        var vm = brain.GetComponentInChildren <CinemachineVirtualCamera>();

        if (vm != null)
        {
            vm.gameObject.SetActive(false);
        }
        if (brain != null)
        {
            brain.enabled = false;
        }
    }
        protected virtual void OnGUI()
        {
            // Draw the camera guides
            if (Target == null || !CinemachineSettings.CinemachineCoreSettings.ShowInGameGuides)
            {
                return;
            }

            // If inspector is collapsed in the vcam editor, don't draw the guides
            if (!VcamStageEditor.ActiveEditorRegistry.IsActiveEditor(this))
            {
                return;
            }

            CinemachineBrain brain = CinemachineCore.Instance.FindPotentialTargetBrain(Target.VirtualCamera);

            if (brain == null || (brain.OutputCamera.activeTexture != null && CinemachineCore.Instance.BrainCount > 1))
            {
                return;
            }

            bool isLive = targets.Length <= 1 && brain.IsLive(Target.VirtualCamera, true);

            // Screen guides
            m_ScreenGuideEditor.OnGUI_DrawGuides(isLive, brain.OutputCamera, Target.VcamState.Lens, !Target.m_UnlimitedSoftZone);

            // Draw an on-screen gizmo for the target
            if (Target.FollowTarget != null && isLive)
            {
                Vector3 targetScreenPosition = brain.OutputCamera.WorldToScreenPoint(Target.TrackedPoint);
                if (targetScreenPosition.z > 0)
                {
                    targetScreenPosition.y = Screen.height - targetScreenPosition.y;

                    GUI.color = CinemachineSettings.ComposerSettings.TargetColour;
                    Rect  r    = new Rect(targetScreenPosition, Vector2.zero);
                    float size = (CinemachineSettings.ComposerSettings.TargetSize
                                  + CinemachineScreenComposerGuides.kGuideBarWidthPx) / 2;
                    GUI.DrawTexture(r.Inflated(new Vector2(size, size)), Texture2D.whiteTexture);
                    size -= CinemachineScreenComposerGuides.kGuideBarWidthPx;
                    if (size > 0)
                    {
                        Vector4 overlayOpacityScalar
                                  = new Vector4(1f, 1f, 1f, CinemachineSettings.ComposerSettings.OverlayOpacity);
                        GUI.color = Color.black * overlayOpacityScalar;
                        GUI.DrawTexture(r.Inflated(new Vector2(size, size)), Texture2D.whiteTexture);
                    }
                }
            }
        }
        public override void OnInspectorGUI()
        {
            if (!Target.m_HideHeaderInInspector)
            {
                // Is the camera navel-gazing?
                CameraState state = Target.State;
                if (state.HasLookAt && (state.ReferenceLookAt - state.CorrectedPosition).AlmostZero())
                {
                    EditorGUILayout.HelpBox(
                        "The camera is positioned on the same point at which it is trying to look.",
                        MessageType.Warning);
                }

                // Active status and Solo button
                Rect rect      = EditorGUILayout.GetControlRect(true);
                Rect rectLabel = new Rect(rect.x, rect.y, EditorGUIUtility.labelWidth, rect.height);
                rect.width -= rectLabel.width;
                rect.x     += rectLabel.width;

                Color color  = GUI.color;
                bool  isSolo = (CinemachineBrain.SoloCamera == (ICinemachineCamera)Target);
                if (isSolo)
                {
                    GUI.color = CinemachineBrain.GetSoloGUIColor();
                }

                bool isLive = CinemachineCore.Instance.IsLive(Target);
                GUI.enabled = isLive;
                GUI.Label(rectLabel, isLive ? "Status: Live"
                    : (Target.isActiveAndEnabled ? "Status: Standby" : "Status: Disabled"));
                GUI.enabled = true;
                if (GUI.Button(rect, "Solo", "Button"))
                {
                    isSolo = !isSolo;
                    CinemachineBrain.SoloCamera = isSolo ? Target : null;
                    UnityEditorInternal.InternalEditorUtility.RepaintAllViews();
                }
                GUI.color = color;
                if (isSolo)
                {
                    UnityEditorInternal.InternalEditorUtility.RepaintAllViews();
                }
            }
            List <string> excluded = GetExcludedPropertiesInInspector();

            serializedObject.Update();
            DrawPropertiesExcluding(serializedObject, excluded.ToArray());
            serializedObject.ApplyModifiedProperties();
        }
        static List <Volume> GetDynamicBrainVolumes(CinemachineBrain brain, int minVolumes)
        {
            // Locate the camera's child object that holds our dynamic volumes
            GameObject volumeOwner = null;
            Transform  t           = brain.transform;
            int        numChildren = t.childCount;

            sVolumes.Clear();
            for (int i = 0; volumeOwner == null && i < numChildren; ++i)
            {
                GameObject child = t.GetChild(i).gameObject;
                if (child.hideFlags == HideFlags.HideAndDontSave)
                {
                    child.GetComponents(sVolumes);
                    if (sVolumes.Count > 0)
                    {
                        volumeOwner = child;
                    }
                }
            }

            if (minVolumes > 0)
            {
                if (volumeOwner == null)
                {
                    volumeOwner                  = new GameObject(sVolumeOwnerName);
                    volumeOwner.hideFlags        = HideFlags.HideAndDontSave;
                    volumeOwner.transform.parent = t;
                }

/*
 *              // Update the volume's layer so it will be seen
 *              int mask = ppLayer.volumeLayer.value;
 *              for (int i = 0; i < 32; ++i)
 *              {
 *                  if ((mask & (1 << i)) != 0)
 *                  {
 *                      volumeOwner.layer = i;
 *                      break;
 *                  }
 *              }
 */
                while (sVolumes.Count < minVolumes)
                {
                    sVolumes.Add(volumeOwner.gameObject.AddComponent <Volume>());
                }
            }
            return(sVolumes);
        }
Пример #16
0
        private static List <PostProcessVolume> GetDynamicBrainVolumes(CinemachineBrain brain, PostProcessLayer ppLayer, int minVolumes)
        {
            GameObject gameObject = null;
            Transform  transform  = brain.transform;
            int        childCount = transform.childCount;

            CinemachinePostProcessing.sVolumes.Clear();
            int num = 0;

            while (gameObject == null && num < childCount)
            {
                GameObject gameObject2 = transform.GetChild(num).gameObject;
                if (gameObject2.hideFlags == HideFlags.HideAndDontSave)
                {
                    gameObject2.GetComponents <PostProcessVolume>(CinemachinePostProcessing.sVolumes);
                    if (CinemachinePostProcessing.sVolumes.Count > 0)
                    {
                        gameObject = gameObject2;
                    }
                }
                num++;
            }
            if (minVolumes > 0)
            {
                if (gameObject == null)
                {
                    gameObject                  = new GameObject(CinemachinePostProcessing.sVolumeOwnerName);
                    gameObject.hideFlags        = HideFlags.HideAndDontSave;
                    gameObject.transform.parent = transform;
                }
                int value = ppLayer.volumeLayer.value;
                for (int i = 0; i < 32; i++)
                {
                    if ((value & 1 << i) != 0)
                    {
                        gameObject.layer = i;
IL_DE:
                        while (CinemachinePostProcessing.sVolumes.Count < minVolumes)
                        {
                            CinemachinePostProcessing.sVolumes.Add(gameObject.gameObject.AddComponent <PostProcessVolume>());
                        }
                        goto IL_EB;
                    }
                }
                goto IL_DE;
            }
IL_EB:
            return(CinemachinePostProcessing.sVolumes);
        }
Пример #17
0
        static List <PostProcessVolume> GetDynamicBrainVolumes(
            CinemachineBrain brain, PostProcessLayer ppLayer, int minVolumes)
        {
            //UnityEngine.Profiling.Profiler.BeginSample("CinemachinePostProcessing.GetDynamicBrainVolumes");
            // Locate the camera's child object that holds our dynamic volumes
            GameObject volumeOwner = null;
            Transform  t           = brain.transform;
            int        numChildren = t.childCount;

            sVolumes.Clear();
            for (int i = 0; volumeOwner == null && i < numChildren; ++i)
            {
                GameObject child = t.GetChild(i).gameObject;
                if (child.hideFlags == HideFlags.HideAndDontSave)
                {
                    child.GetComponents(sVolumes);
                    if (sVolumes.Count > 0)
                    {
                        volumeOwner = child;
                    }
                }
            }

            if (minVolumes > 0)
            {
                if (volumeOwner == null)
                {
                    volumeOwner                  = new GameObject(sVolumeOwnerName);
                    volumeOwner.hideFlags        = HideFlags.HideAndDontSave;
                    volumeOwner.transform.parent = t;
                }
                // Update the volume's layer so it will be seen
                int mask = ppLayer.volumeLayer.value;
                for (int i = 0; i < 32; ++i)
                {
                    if ((mask & (1 << i)) != 0)
                    {
                        volumeOwner.layer = i;
                        break;
                    }
                }
                while (sVolumes.Count < minVolumes)
                {
                    sVolumes.Add(volumeOwner.gameObject.AddComponent <PostProcessVolume>());
                }
            }
            //UnityEngine.Profiling.Profiler.EndSample();
            return(sVolumes);
        }
Пример #18
0
    void Awake()
    {
        m_MainCinemachineConfiner = GetComponent <CinemachineConfiner>();
        m_MainCinemachineBrain    = mainCamera.GetComponent <CinemachineBrain>();

        if (subvcam != null)
        {
            m_SubCinemachineConfiner = subvcam.GetComponent <CinemachineConfiner>();
            subvcam.SetActive(false);
        }
        else
        {
            Debug.LogWarning("교체할 카메라가 없습니다.");
        }
    }
Пример #19
0
        private void Awake()
        {
            BlocksMap.Instance.AfterMapGeneration += AfterMapGeneration;
            MainCamera       = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <Camera>();
            CinemachineBrain = MainCamera.gameObject.GetOrAddComponent <CinemachineBrain>();

            if (GamePlayCamera)
            {
                Destroy(GamePlayCamera.gameObject);
            }
            if (EditorCamera)
            {
                Destroy(EditorCamera.gameObject);
            }
        }
        private void Start()
        {
            //Get the camera's brain.
            m_Camera = transform.GetComponentInChildren <CinemachineBrain>();

            //If we need to hide the cursor.
            if (m_HideCursor)
            {
                //Lock the cursor.
                Cursor.lockState = CursorLockMode.Locked;

                //Make it invisible.
                Cursor.visible = false;
            }
        }
Пример #21
0
 /// <summary>
 /// Is this virtual camera currently actively controlling any Camera?
 /// </summary>
 public bool IsLive(ICinemachineCamera vcam)
 {
     if (vcam != null)
     {
         for (int i = 0; i < BrainCount; ++i)
         {
             CinemachineBrain b = GetActiveBrain(i);
             if (b != null && b.IsLive(vcam))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Пример #22
0
    public void UpdateCameraReferences(CinemachineVirtualCameraBase _2dCam, CinemachineVirtualCameraBase _transitionCam, CinemachineVirtualCameraBase _3dCam, CinemachineBrain _cmBrain)
    {
        camera2D            = _2dCam;
        camera3D            = _3dCam;
        cameraTransition    = _transitionCam;
        cmBrain             = _cmBrain;
        cmBrainGO           = _cmBrain.gameObject;
        originalCullingMask = cmBrainGO.GetComponent <Camera>().cullingMask;

        StoreCameraPriority(camera2D);
        StoreCameraPriority(cameraTransition);
        StoreCameraPriority(camera3D);

        return;
    }
Пример #23
0
 private void Awake()
 {
     _drawModeToPrefab = new Dictionary <DrawMode, DrawShape> {
         { DrawMode.Rectangle, RectanglePrefab },
         { DrawMode.Circle, CirclePrefab }
     };
     vcam       = GameObject.Find("PlayerCameraDrawing").GetComponent <CinemachineVirtualCamera>();
     playerVcam = GameObject.Find("PlayerCamera").GetComponent <CinemachineVirtualCamera>();
     brain      = GameObject.FindObjectOfType <CinemachineBrain>();
     vcam.m_Lens.OrthographicSize = playerVcam.m_Lens.OrthographicSize;
     playerTransform     = GameObject.Find("Player").transform;
     lastPlayerTransform = new GameObject("PlayerTransform").transform;
     vcam.Follow         = lastPlayerTransform;
     vcam.gameObject.SetActive(false);
 }
Пример #24
0
    private void LoadAndSetTimelineBindingData(LoadedTimelineData data)
    {
        //这里可以得到每个track的绑定值,并进行一些设置,比如将绑定的类中的roleobject变量赋值
        //这里还可以对每个track中的每个clip设置,可以取到每个clip的asset,并对其中的属性赋值,这样在creatplayable的时候,就会赋值到playable上
        CinemachineBrain brain = CameraControll.Instance.gameObject.GetComponent <CinemachineBrain>();

        if (brain == null)
        {
            brain = CameraControll.Instance.gameObject.AddComponent <CinemachineBrain>();
        }
        brain.enabled = false;
        var childVm = brain.GetComponentInChildren <CinemachineVirtualCamera>();

        if (childVm == null)
        {
            GameObject vitrualCa = new GameObject("VM", typeof(CinemachineVirtualCamera));
            vitrualCa.transform.parent           = brain.transform;
            vitrualCa.transform.localPosition    = Vector3.zero;
            vitrualCa.transform.localEulerAngles = Vector3.zero;
            vitrualCa.transform.localScale       = Vector3.one;
            var VM = vitrualCa.GetComponent <CinemachineVirtualCamera>();
            VM.Priority = 1;
        }

        //List<RoleData> loadedRoleData = new List<RoleData>();
        needLoadRoleData.Clear();
        foreach (var binding in data.director.playableAsset.outputs)
        {
            if (binding.sourceObject is MYCinemachineTrack)
            {
                SetCinemachineTrackData(binding, data.director);
                continue;
            }

            UnityEngine.Object bindingObj = data.director.GetGenericBinding(binding.sourceObject);
            if (bindingObj != null && bindingObj is RoleData)
            {
                RoleData roledata = bindingObj as RoleData;
                if (!needLoadRoleData.Contains(roledata))
                {
                    //LoadBindingRoleData(roledata);
                    needLoadRoleData.Add(roledata);
                }
            }
        }
        StartCoroutine(LoadBindingRoleData());
        //StartCoroutine(InitVirtualCamera(data));
    }
Пример #25
0
        //UnityEngine.PostProcessing.PostProcessingBehaviour mPostProcessingBehaviour;

        void ConnectToBrain()
        {
            // If I am a component on the Unity camera, connect to its brain
            // and to its post-processing behaviour
            mBrain = GetComponent <CinemachineBrain>();
            if (mBrain != null)
            {
                mBrain.m_CameraCutEvent.RemoveListener(OnCameraCut);
                mBrain.m_CameraCutEvent.AddListener(OnCameraCut);
            }
            // Must have one of these if connected to a brain
            //mPostProcessingBehaviour = GetComponent<UnityEngine.PostProcessing.PostProcessingBehaviour>();

            /*if (mPostProcessingBehaviour == null && mBrain != null)
             *  mPostProcessingBehaviour = gameObject.AddComponent<UnityEngine.PostProcessing.PostProcessingBehaviour>();*/
        }
Пример #26
0
        private void Start()
        {
            _distanceToObject = _objectToCheck.m_ImpulseDefinition.m_DissipationDistance;
            foreach (var targetGroupMTarget in _targetGroup.m_Targets)
            {
                Debug.Log(targetGroupMTarget.target.name);
            }

            // _targetGroup.m_Targets.Add(target);

            _cinemachineBrain = Camera.main.GetComponent <CinemachineBrain>();
            if (!_cinemachineBrain.ActiveVirtualCamera.Name.Equals(_switchCameraTo.Name))
            {
                --_cinemachineBrain.ActiveVirtualCamera.Priority;
            }
        }
    public void CoShake(float _duration, float _size)
    {
        //Cinemachine Controller just moment off
        if (scpCinemachineBrain == null)
        {
            scpCinemachineBrain = GetComponent <CinemachineBrain> ();
        }

        if (scpCinemachineBrain != null)
        {
            scpCinemachineBrain.enabled = false;
        }

        StopAllCoroutines();
        StartCoroutine(Shake(_duration, _size));
    }
Пример #28
0
    private void Awake()
    {
        if (Instance != null)
        {
            Destroy(gameObject);
        }
        Instance = this;

        playerInstances = new GameObject[maxPlayers];
        enemyInstances  = new GameObject[maxEnemies];
        units           = new BattleUnit[maxPlayers + maxEnemies];

        cameraDelta = Time.deltaTime;
        pov         = Camera.main;
        povBrain    = pov.GetComponent <CinemachineBrain>();
    }
Пример #29
0
    void UpdateDepth(CinemachineBrain brain)
    {
        RaycastHit hit;
        Vector3    fw    = transform.TransformDirection(Vector3.forward);
        float      depth = defaultDepth;

        if (Physics.Raycast(transform.position, fw, out hit, defaultDepth))
        {
            depth = (hit.point - transform.position).magnitude;
        }

        foreach (var d in dof)
        {
            d.focusDistance.value = Mathf.Lerp(d.focusDistance.value, depth, .2f);
        }
    }
Пример #30
0
        //UnityEngine.PostProcessing.PostProcessingBehaviour mPostProcessingBehaviour;

        void Awake()
        {
            // If I am a component on the camera, connect to its brain
            // and to its post-processing behaviour
            mBrain = GetComponent <CinemachineBrain>();
            if (mBrain != null)
            {
                mBrain.PostFXHandler += PostFXHandler;
                mBrain.m_CameraCutEvent.AddListener(OnCameraCut);
            }

            // Must have one of these if connected to a brain
            //mPostProcessingBehaviour = GetComponent<UnityEngine.PostProcessing.PostProcessingBehaviour>();
            //if (mPostProcessingBehaviour == null && mBrain != null)
            //    mPostProcessingBehaviour = gameObject.AddComponent<UnityEngine.PostProcessing.PostProcessingBehaviour>();
        }