我正在尝试制作一个大战略游戏,并且正在尝试制作一个可以平移和缩放的相机,但是我尝试的所有操作最终都会以随机方向发送相机,或者只是将其设置为 0,0 .我需要它像 Crusader Kings 2 游戏一样,使用鼠标中键,根据鼠标所在的位置进行平移。我找到了一个关于如何执行此操作的视频,但我不知道如何将其转换为“新”Unity 输入系统
当前代码:
```public class Cameracontrols : MonoBehaviour
{
Controls controls;
public Camera Camera;
Vector3 panOrigin;
Vector3 mousePosition;
bool middleMouseButtonHeld;
private void Awake()
{
controls = new Controls();
controls.MouseandKeyboard.Pan.performed += ctx => middleMouseButtonHeld = true;
controls.MouseandKeyboard.Pan.canceled += ctx => middleMouseButtonHeld = false;
}
private void OnEnable()
{
controls.Enable();
}
private void OnDisable()
{
controls.Disable();
}
void Update()
{
Panmap();
mousePosition.x = Mouse.current.position.x.ReadValue();
mousePosition.y = Camera.transform.position.y;
mousePosition.z = Mouse.current.position.y.ReadValue();
}
void Panmap()
{
if (Mouse.current.middleButton.ispressed)
{
panOrigin = Camera.ScreenToWorldPoint(mousePosition);
Debug.Log(panOrigin);
}
if (middleMouseButtonHeld == true)
{
Vector3 difference = panOrigin - Camera.ScreenToWorldPoint(mousePosition);
Camera.transform.position += difference;
}
}
}```