Görüntülediğim ekrandan daha büyük bir harita kullanıyorum. Bu yüzden o haritanın etrafında gezinebilmem gerekiyor. Fotoğraf makinesini ve haritayı sıkıştırırken sorun yaşıyorum. Görüntünün gerilemesini kelepçenin genişliği ve yüksekliği olarak kullanabilmek istiyorum. Sorun birimlerdir.Bir haritanın kenarlığını ve o haritanın panosunu aynı şekilde nasıl yapabilirim?
Resim 2144 x 1708 Fotoğraf makinesi aktarımı tek hanedir (14 x 7) veya böyle bir şeydir.
Kullandığım tüm kodlar aşağıda.
private Vector3 mouseOrigin; // Position of cursor when mouse dragging starts
private bool isPanning; // Is the camera being panned?
public bool useBoundary = true;
public Vector2 boundaryMin;
public Vector2 boundaryMax;
public Image map;
void Start()
{
Camera cam = Camera.main;
float mapRatio = map.rectTransform.rect.width/map.rectTransform.rect.height;
float mapScreenHeight = (1.5f * cam.orthographicSize);
float mapScreenWidth = (3f * mapScreenHeight) * cam.aspect;
boundaryMin = new Vector2(0, 1);
boundaryMax = new Vector2(map.rectTransform.rect.width, map.rectTransform.rect.height);
}
void Update()
{
// Get the left mouse button
if (Input.GetMouseButtonDown(0))
{
// Get mouse origin
mouseOrigin = Input.mousePosition;
isPanning = true;
}
// Disable movements on button release
if (!Input.GetMouseButton(0)) isPanning = false;
// Rotate camera along X and Y axis
// Move the camera on it's XY plane
if (isPanning)
{
Vector3 pos = Camera.main.ScreenToViewportPoint(Input.mousePosition - mouseOrigin);
Vector3 move = new Vector3(pos.x * panSpeed, pos.y * panSpeed, 0);
transform.Translate(move, Space.Self);
BoundaryCheck();
}
}
void BoundaryCheck()
{
if (!useBoundary)
return;
Vector3 newPos = transform.position;
newPos.x = Mathf.Clamp(newPos.x, boundaryMin.x, boundaryMax.x);
newPos.y = Mathf.Clamp(newPos.y, boundaryMin.y, boundaryMax.y);
transform.position = newPos;
}
}
bir Yardım büyük takdir.
14x7 boyutunda başka bir resim kullanamaz mısınız? Ve sen editörde “boundaryMin” ve “boundaryMax” 'ı açığa çıkarıyorsun ama sonra 'Start()' da onların değerinin üzerine yazıyorsun, böylece onları kamuya açmanın ne anlamı var? –
Bir şeyleri özel olarak değiştirebilirim, bu bir sorun değil. Bir kaydırma haritasında, normal olarak haritanın boyutlarını ekrana göre ayarlar mısınız? Bu ekran bir mobil cihazda değiştiğinde nasıl çalışır? –