![](/img/trans.png)
[英]How to Make a Clickable Sprite in Unity 2D, detect if the cursor is hovering over a sprite, and how to change scene with code
[英]Unity: How to resize a whole 2D sprite scene to any screen resolution?
伙計們。 我們正在為桌面和移動設備開發一個 2D 游戲,它是基於網格的,盡管我們決定不使用 tilemaps,而是通過代碼創建我們自己的網格。 因為我們需要為每個圖塊編寫不同的動作和交互。 游戲 UI 位於 canvas 上,該部分按我們的預期調整大小,此外,兩者的“功能方面”都已經運行良好。 移動和桌面,問題在於,當我們將主網格和對象制作為精靈時:它在任何 16,9 屏幕上都能很好地工作。 但是當它在任何更寬的屏幕上運行時,一些屏幕空間會被削減。
我們如何根據屏幕尺寸調整整個精靈場景的大小? 我想這與相機有關,而不是與實際物體有關,但我們沒有明確的線索。 我們已經研究過“像素完美的相機”,雖然我們還沒有深入研究它,但它看起來更多的目的是為了以全分辨率保存藝術品,而不是我們所需要的。
這一張來自屏幕更寬 (16:10) 的 PC,場景從側面被裁剪(在上一張圖片中,我用橙色/黃色標記了這張圖片中丟失的列)
我想應該有一種方法可以拉伸所有精靈以適合屏幕,但我認為 go 的最佳方法是在頂部和底部或兩側獲得空的水平或垂直條,以保持准確的比例,這就足夠了。 但是怎么做呢?
提前致謝。
解決了! 從ephb給我的好主意開始,我最終決定在屏幕寬度和高度之間獲得一個參考百分比。 所以,對於 1920x1080,這是我知道游戲看起來正確的分辨率,我做了一個三的規則,得到 1080 是屏幕寬度的 56.25%,在這種情況下,相機尺寸應該是 5。
知道這兩個元素后,現在我可以檢查用戶設備的高度比例,並使用另一個三的規則計算正確的相機尺寸,如下所示:
Camera cam;
void Awake()
{
cam = Camera.main;
cam.orthographicSize = GetHeightProportion() * 5 / 56.25f; //1920x1080 reference ---
}
float GetHeightProportion()
{
return ((float)Screen.height * 100) / (float)Screen.width;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.