Пока что я на глаз установил мин макс координаты ограничения перемещения камеры, само перемещение происходит так
private void MoveCamera(){
if(Input.GetMouseButtonDown(0)){ CurrentPositionCamera = MainCamera.ScreenToWorldPoint(Input.mousePosition); }
if(Input.GetMouseButton(0)){
Vector3 DifferencePositionCamera = CurrentPositionCamera - MainCamera.ScreenToWorldPoint(Input.mousePosition);
if(DifferencePositionCamera != PrevPositionCamera){
MainCamera.transform.position += DifferencePositionCamera;
if(MainCamera.transform.position.x >= CameraPositionXMax){
MainCamera.transform.position = new Vector3(CameraPositionXMax, MainCamera.transform.position.y, 0f);
}
if(MainCamera.transform.position.x <= CameraPositionXMin){
MainCamera.transform.position = new Vector3(CameraPositionXMin, MainCamera.transform.position.y, 0f);
}
if(MainCamera.transform.position.y >= CameraPositionYMax){
MainCamera.transform.position = new Vector3(MainCamera.transform.position.x, CameraPositionYMax, 0f);
}
if(MainCamera.transform.position.y <= CameraPositionYMin){
MainCamera.transform.position = new Vector3(MainCamera.transform.position.x, CameraPositionYMin, 0f);
}
PrevPositionCamera = DifferencePositionCamera;
}
}
}
Но у каждой комнаты могут быть свои границы, дальше ближе, пока у меня вариант писать где-то в текстовых доках под каждую комнату где какая должна быть граница...
Можно ли как-то автоматически определять границы, какие есть для этого способы?
Или можно ли какой-то префаб подложку сделать чтобы его не было видно но его можно было регулировать и камера автоматически за него не могла выйти?