편집 : 3D가 아닌 2D 구현에 대한 대답이 필요합니다. 따라서 'Asked Before'질문은 내 프로젝트에서 작동하지 않습니다.Unity 2D 마우스 확대/축소, 마우스 포인트의 위치 확대
편집 : 아래에서 허용되는 답변을 사용하여이 내 작업 스크립트입니다. Vector3의 0.1F 부분이 제대로 작동하기 어렵 기 때문에 약간 꺼져 있지만 작동합니다. Time.deltaTime이 작동하지 않았습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraZoom : MonoBehaviour
{
private float zoom = 10;
Vector3 newPosition;
void Update()
{
if (Input.GetAxis("Mouse ScrollWheel") > 0 && zoom > 9)
{
zoom -= 1;
Camera.main.orthographicSize = zoom;
newPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
transform.position = Vector3.Lerp(transform.position, newPosition, 0.1F);
}
if (Input.GetAxis("Mouse ScrollWheel") < 0 && zoom < 101)
{
zoom += 1;
Camera.main.orthographicSize = zoom;
}
}
}
원래 질문 : 나는 확대 및 축소에 대한 기본 스크립트를 가지고,하지만 난 마우스 휠을 다시 확대 할 때, 나는 마우스 커서의 지점을 확대하고자합니다. 나는 Paradox 게임 (EU4 등)에서 비슷한 것을 볼 수 있다고 생각합니다. 축소하면 화면 왼쪽에있는 국가로 마우스를 가져간 다음 확대하여 국가가 확대되어 중심이됩니다.
여기 내 기본 스크립트가 내 카메라에 부착되어 있는데,이 카메라는 직선으로 확대/축소됩니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraZoom : MonoBehaviour {
public float zoom = 10F;
void Update() {
if (Input.GetAxis("Mouse ScrollWheel") > 0 && zoom > 9)
{
zoom -= 1;
}
if (Input.GetAxis("Mouse ScrollWheel") < 0 && zoom < 101)
{
zoom += 1;
}
GetComponent<Camera>().orthographicSize = zoom;
}
}
'이전 질문'답변의 문제점은 3D 구현을위한 것이며 2D가 필요하다는 것입니다. 그것은 카메라의 위치를 변형시킴으로써 (나는 생각합니다) 작동하지만, 저는 2D에 대한 'orthographicsize'로 무언가를해야한다고 생각합니다. – Farflame
중복으로 표시하지 않았지만 복제본도 잘 작동해야합니다. – Programmer
그렇지 않습니다. 사실 2D에서 아무것도하지 않는다고 믿는 카메라 변형을 움직이기 때문에 복제본은 전혀 아무것도하지 않습니다. 2D 버전은 카메라의 정사각형 크기를 변경해야합니다. 내 솔루션은 괜찮지 만 완벽하지는 않습니다. 사람들이 똑같은 해결책을 찾기 위해 여기에 온다고 가정 할 때, 복제본은 전혀 작동하지 않기 때문에 정답으로 표시해서는 안됩니다. – Farflame