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; }
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); }
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); }
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; } }
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); } } }