예제 #1
0
        private void OnTriggerEnter(Collider other)
        {
            SharedCameraComponents camComponents = other.gameObject.GetComponent <CameraTriggerObject>()?.GetCameraComponents();

            if (camComponents != null)
            {
                //store camera's current components
                currFollowTarget = camComponents.followTarget;
                currLookTarget   = camComponents.lookAtTarget;
                currCamParams    = camComponents.cameraParams;

                //assign new components
                if (enterFollowTarget != null)
                {
                    camComponents.followTarget = enterFollowTarget;
                }
                if (enterLookTarget != null)
                {
                    camComponents.lookAtTarget = enterLookTarget;
                }
                if (enterCamParams != null)
                {
                    camComponents.cameraParams = enterCamParams;
                }
            }
        }
        private void Awake()
        {
            components   = GetComponent <SharedCameraComponents>();
            debugDrawing = GetComponent <DebugDrawing>();

            camParams = components.cameraParams;
        }
        private void Awake()
        {
            cam                = GetComponent <Camera>();
            stateController    = GetComponent <CameraStateController>();
            components         = GetComponent <SharedCameraComponents>();
            debugDrawing       = GetComponent <DebugDrawing>();
            occlusionAvoidance = GetComponent <OcclusionAvoidance>();
            locomotion         = GetComponent <CommonLocomotionFunctions>();

            followTarget = components.followTarget;
            camParams    = components.cameraParams;
        }
        private bool IsCamOrientationNearEnoughDesiredFollow()
        {
            CameraParams camParams = components.cameraParams;

            //get front or rear offset
            Vector3 desiredOffset = TargetIsMovingTowardsCamera() && TargetCanMoveTowardsCamera() ? camParams.desiredFrontOffset : camParams.desiredOffset;

            //transform offset from follow target local space, if necessary
            if (!camParams.useWorldSpaceOffset)
            {
                desiredOffset = components.followTarget.transform.TransformDirection(desiredOffset);
            }

            Vector3 followTargetToCam = cam.transform.position - components.followTarget.transform.position;

            return(Vector3.Dot(desiredOffset.normalized, followTargetToCam.normalized) > offsetNearEnoughMinDot);
        }
 void Start()
 {
     camParams = GetComponent <SharedCameraComponents>().cameraParams;
 }
예제 #6
0
 private void Awake()
 {
     cam        = GetComponent <Camera>();
     components = GetComponent <SharedCameraComponents>();
     camParams  = components.cameraParams;
 }