예제 #1
0
    void Start()
    {
        transform.parent = target.transform;

        domaManager = DomaManager.Instance;

        Vector3 centralVector = domaManager.GetObjectPositionValue(target).CentralVector;
        //transform.localPosition = new Vector3(centralVector.x, 700f, centralVector.z - 300f);
        //GetComponent<Camera>().orthographicSize = 800f;
    }
예제 #2
0
    void LateUpdate()
    {
        var objectPositionValue = domaManager.GetObjectPositionValue(target);

        if (objectPositionValue == null)
        {
            return;
        }

        if (!V3Equal(objectPositionValue.CentralVector, _lastCentralVector))
        {
            transform.localPosition    = new Vector3(objectPositionValue.CentralVector.x + objectPositionValue.MaxDistanceFromCentral + distanceCameraToObjects, objectPositionValue.MaxPositionY / 1.5f, objectPositionValue.CentralVector.z);
            transform.localEulerAngles = new Vector3(0, -90, 0);
            _lastCentralVector         = objectPositionValue.CentralVector;
        }

        transform.RotateAround(objectPositionValue.CentralVector + target.transform.position, Vector3.down, speedRotationHorizontal * Time.deltaTime);
    }
예제 #3
0
    void Start()
    {
        transform.parent = target.transform;
        cam         = gameObject.GetComponent <Camera>();
        domaManager = DomaManager.Instance;

        var objectPositionValue = domaManager.GetObjectPositionValue(target);

        try
        {
            transform.localPosition = new Vector3(objectPositionValue.CentralVector.x + objectPositionValue.MaxDistanceFromCentral + distanceCameraToObjects, objectPositionValue.MaxPositionY / 1.5f, objectPositionValue.CentralVector.z);
            _lastCentralVector      = objectPositionValue.CentralVector;
        }
        catch
        {
        }

        transform.localEulerAngles = new Vector3(0, -90, 0);
    }
예제 #4
0
    void Update()
    {
        if ((Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1) || Input.GetMouseButtonDown(2)) && Input.GetButton("LeftShift"))
        {
            centralVector     = domaManager.GetObjectPositionValue(target).CentralVector;
            lastMousePosition = Input.mousePosition;
        }

        // Moving Camera (LEFT SHIFT + PRESSED SCROLL MOUSE)
        if (Input.GetMouseButton(2) && Input.GetButton("LeftShift"))
        {
            Vector3 diffMousePosition = Input.mousePosition - lastMousePosition;
            Vector3 moveVector        = new Vector3(diffMousePosition.x * moveSpeed, 0f, diffMousePosition.y * moveSpeed);
            transform.position += transform.TransformDirection(-moveVector) * Time.deltaTime;
        }

        // Rotate Horizontal Camera (LEFT SHIFT + LEFT MOUSE)
        if (Input.GetMouseButton(0) && Input.GetButton("LeftShift"))
        {
            Vector3 diffMousePosition = Input.mousePosition - lastMousePosition;
            transform.RotateAround(centralVector + target.transform.position, new Vector3(0, diffMousePosition.x, 0), rotateSpeed * Time.deltaTime * Input.mousePosition.x / 100);
        }

        // Rotate Vertical Camera (LEFT SHIFT + RIGHT MOUSE)
        if (Input.GetMouseButton(1) && Input.GetButton("LeftShift"))
        {
            Vector3 diffMousePosition = Input.mousePosition - lastMousePosition;
            transform.Rotate(new Vector3(diffMousePosition.y, 0f, 0f) * rotateSpeed * Time.deltaTime / 100);
        }

        // Zoom Camera (LEFT SHIFT + SCROLL MOUSE)
        if (Input.GetAxis("Mouse ScrollWheel") != 0 && Input.GetButton("LeftShift"))
        {
            float mouseScroll = Input.GetAxis("Mouse ScrollWheel");
            cam.orthographicSize -= mouseScroll * zoomSpeed;
        }
    }
예제 #5
0
    void LateUpdate()
    {
        Vector3 centralVector = domaManager.GetObjectPositionValue(target).CentralVector;

        // Rotation camera
        if (Input.GetMouseButtonDown(0) && Input.GetButton("LeftShift"))
        {
            _lastMousePosition = Input.mousePosition;
        }
        else if (Input.GetMouseButton(0) && Input.GetButton("LeftShift"))
        {
            float currentXAbs = Mathf.Abs(Input.mousePosition.x);
            float currentYAbs = Mathf.Abs(Input.mousePosition.y);

            float lastXAbs = Mathf.Abs(_lastMousePosition.x);
            float lastYAbs = Mathf.Abs(_lastMousePosition.y);

            float differentHorizontal = Mathf.Max(currentXAbs, lastXAbs) - Mathf.Min(currentXAbs, lastXAbs);
            float differentVertical   = Mathf.Max(currentYAbs, lastYAbs) - Mathf.Min(currentYAbs, lastYAbs);

            if (differentHorizontal > differentVertical)
            {
                if (Input.mousePosition.x >= _lastMousePosition.x)
                {
                    transform.RotateAround(centralVector + target.transform.position, Vector3.up, speedRotationHorizontal * Time.deltaTime * Input.mousePosition.x / 100);
                }
                else
                {
                    transform.RotateAround(centralVector + target.transform.position, Vector3.down, speedRotationHorizontal * Time.deltaTime * Input.mousePosition.x / 100);
                }
            }
            else
            {
                if (Input.mousePosition.y >= _lastMousePosition.y)
                {
                    if (transform.rotation.x < 0)
                    {
                        transform.eulerAngles = new Vector3(0, transform.rotation.y, transform.rotation.z);
                    }
                    transform.Rotate(Vector3.right * speedRotationVertical * Time.deltaTime);
                }
                else
                {
                    if (transform.rotation.x < 0)
                    {
                        transform.eulerAngles = new Vector3(0, transform.rotation.y, transform.rotation.z);
                    }
                    transform.Rotate(Vector3.left * speedRotationVertical * Time.deltaTime);
                }
            }
        }

        // Zoom In/Out
        if (Input.GetAxis("Mouse ScrollWheel") != 0 && Input.GetButton("LeftShift"))
        {
            float mouseScroll = Input.GetAxis("Mouse ScrollWheel");
            GetComponent <Camera>().orthographicSize -= mouseScroll * speedZoom;
        }

        // Change Height Camera
        if (Input.GetMouseButtonDown(2) && Input.GetButton("LeftShift"))
        {
            _lastMousePosition = Input.mousePosition;
        }
        else if (Input.GetMouseButton(2) && Input.GetButton("LeftShift"))
        {
            float currentXAbs = Mathf.Abs(Input.mousePosition.x);
            float currentYAbs = Mathf.Abs(Input.mousePosition.y);

            float lastXAbs = Mathf.Abs(_lastMousePosition.x);
            float lastYAbs = Mathf.Abs(_lastMousePosition.y);

            float differentHorizontal = Mathf.Max(currentXAbs, lastXAbs) - Mathf.Min(currentXAbs, lastXAbs);
            float differentVertical   = Mathf.Max(currentYAbs, lastYAbs) - Mathf.Min(currentYAbs, lastYAbs);

            if (Input.mousePosition.y >= _lastMousePosition.y)
            {
                transform.position = new Vector3(transform.position.x, transform.position.y + differentVertical * Time.deltaTime, transform.position.z);
            }
            else
            {
                transform.position = new Vector3(transform.position.x, transform.position.y - differentVertical * Time.deltaTime, transform.position.z);
            }
        }
    }