Beispiel #1
0
        void MoveCameraSafely(Vector3 newCameraPosition, CameraDirections direction)
        {
            // an example of moving the camera only if it doesn't make space outside the background visible
            bool safe = false;

            switch (direction)
            {
            case CameraDirections.Up:
                safe = !PointIsVisibleToCamera(new Vector2(Camera.main.transform.position.x, MaxTopEdge - cameraSpeed));
                break;

            case CameraDirections.Down:
                safe = !PointIsVisibleToCamera(new Vector2(Camera.main.transform.position.x, MaxBottomEdge + cameraSpeed));
                break;

            case CameraDirections.Left:
                safe = !PointIsVisibleToCamera(new Vector2(MaxLeftEdge + cameraSpeed, Camera.main.transform.position.y));
                break;

            case CameraDirections.Right:
                safe = !PointIsVisibleToCamera(new Vector2(MaxRightEdge - cameraSpeed, Camera.main.transform.position.y));
                break;
            }

            if (safe)
            {
                Camera.main.transform.position = newCameraPosition;
            }
            PlaceUI();
        }
Beispiel #2
0
        public void moveCamera(CameraDirections direction)
        {
            switch (direction)
            {
            case CameraDirections.FORWARD: m_firstPersonCameraPosition += GetEyeSpaceForwardVector() * m_cameraMoveSpeed; break;

            case CameraDirections.BACK: m_firstPersonCameraPosition -= GetEyeSpaceForwardVector() * m_cameraMoveSpeed; break;

            case CameraDirections.LEFT: m_firstPersonCameraPosition -= GetEyeSpaceRightVector() * m_cameraMoveSpeed; break;

            case CameraDirections.RIGHT: m_firstPersonCameraPosition += GetEyeSpaceRightVector() * m_cameraMoveSpeed; break;
            }
        }
Beispiel #3
0
        // these methods are accessible from anywhere in your game as long as there is an instance of this script available
        // you access them like the following example:
        // ResolutionManager.Instance.MoveCamera(CameraDirections.Up, 0.5f);

        public void MoveCamera(CameraDirections direction, float moveDistance, bool moveSafely = false)
        {
            // move the camera in the specified direction and the specified distance
            // if RestrictScreenToBackground or moveSafely is true the camera will only move if the movement won't cause content outside the background region to show on the screen

            Vector3 newCameraPos = Camera.main.transform.position;

            switch (direction) // to move it two directions (e.g. up and left), call this function  for each direction separately
            {
            case CameraDirections.Up:
                newCameraPos = new Vector3(Camera.main.transform.position.x, Camera.main.transform.position.y + moveDistance, -10f);
                break;

            case CameraDirections.Down:
                newCameraPos = new Vector3(Camera.main.transform.position.x, Camera.main.transform.position.y - moveDistance, -10f);
                break;

            case CameraDirections.Left:
                newCameraPos = new Vector3(Camera.main.transform.position.x - moveDistance, Camera.main.transform.position.y, -10f);
                break;

            case CameraDirections.Right:
                newCameraPos = new Vector3(Camera.main.transform.position.x + moveDistance, Camera.main.transform.position.y, -10f);
                break;
            }

            if (RestrictScreenToBackground || moveSafely)
            {
                MoveCameraSafely(newCameraPos, direction); // only move the camera if the movement will not reveal space outside the background area
            }
            else
            {
                MoveCameraUnsafely(newCameraPos); // move the camera regardless
            }
            PlaceUI();
        }