[英]How can I code my game to work on every resolution of Android devices? (with Unity)
我有一個游戲,我在Unity中以480x320的分辨率(我在構建設置中設置了它)。 但我想為每個Android設備發布我的游戲,每個分辨率。 我怎么能這樣做,告訴Unity將我的游戲擴展到設備的分辨率? 有可能嗎?
提前致謝!
你的問題的答案在很大程度上取決於你如何實現游戲。 如果你使用GUI紋理創建它,那么它在很大程度上取決於你如何放置/調整對象的大小與屏幕大小,這使得事情有點棘手。
如果您的游戲的大部分是使用對象(例如飛機,立方體等)完成的,那么我通常會選擇使用兩種方法。
1)第一種方法很容易實現,但並不總是看起來太好。 您只需更改相機的縱橫比即可與您設計的游戲相匹配。 所以在你的情況下,既然你在4:3設計了你的游戲,你就會做這樣的事情:
Camera.aspect = 4f/3f;
然而,如果有人在16:9的屏幕上玩游戲,游戲最終會變得扭曲和伸展。
2)第二種方法並不容易,需要相當多的工作和計算,但會為您提供更清晰的結果。 如果您使用的是正交相機,請記住一件重要的事情是,無論使用何種屏幕分辨率,正交相機都會將高度保持在設定的高度,並且只會改變寬度。 例如,使用尺寸為10的正交相機,高度將設置為2.考慮到這一點,您需要做的是補償每個級別內最寬的相機(例如,具有寬背景)或動態更改相機的正交尺寸,直到其寬度與您創建的相匹配。
如果你用立體相機做了3D游戲,屏幕分辨率不應該真正影響它的外觀,但我想這取決於游戲,所以需要更多的信息
我的方法是根據設備縱橫比改變相機視口。考慮你制作了800x1280的游戲
您可以在任何一個腳本中執行此操作
float xFactor = Screen.width / 800f;
float yFactor = Screen.height / 1280f;
Camera.main.rect=new Rect(0,0,1,xFactor/yFactor);
這就像魔法一樣
一個簡單的方法是考慮你的目標,我的意思是如果你正在為Iphone 5做游戲,那么寬高比是9:16 v或16:9 h。
public float targetRatio = 9f/16f; //The aspect ratio you did for the game.
void Start()
{
Camera cam = GetComponent<Camera>();
cam.aspect = targetRatio;
}
這是我在2D游戲中縮放ortographic相機的腳本
public float screenHeight = 1920f;
public float screenWidth = 1080f;
public float targetAspect = 9f / 16f;
public float orthographicSize;
private Camera mainCamera;
// Use this for initialization
void Start () {
// Initialize variables
mainCamera = Camera.main;
orthographicSize = mainCamera.orthographicSize;
// Calculating ortographic width
float orthoWidth = orthographicSize / screenHeight * screenWidth;
// Setting aspect ration
orthoWidth = orthoWidth / (targetAspect / mainCamera.aspect);
// Setting Size
Camera.main.orthographicSize = (orthoWidth / Screen.width * Screen.height);
}
我假設它是2D而不是3D,這就是我所做的 :
並在主Canvas'喚醒方法上添加此代碼段:
var canvasScaler = GetComponent<CanvasScaler>();
var ratio = Screen.height / (float) Screen.width;
var rr = canvasScaler.referenceResolution;
canvasScaler.matchWidthOrHeight = (ratio < rr.x / rr.y) ? 1 : 0;
對於3D對象,您可以使用上述任何答案
對我來說最好的解決方案是使用相交線的定理,這樣既不會在側面產生截止,也不會對游戲視圖造成扭曲。 這意味着您必須后退或前進,具體取決於不同的寬高比。
如果您願意,我在Unity資產商店中擁有一項資產可自動更正相機距離,因此無論您使用哪種手持設備,都不會出現扭曲或中斷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.