Android에서 발생하는 문제는 모든 기기마다 자체 화면 크기, 해상도 및 픽셀 밀도가 있다는 것입니다. 모든 장치에서 게임이 동일하게 보이도록하려면 많은 작업이 필요하며 결과에 결코 만족하지 않을 것입니다. 게임은 와이드 스크린 디스플레이에서 확장되거나 비 와이드 스크린에서 압축되어 나타납니다. 나는 당신이 정말로 중요한 것을 결정하고 다른 것을 조금 밀어 보도록 제안합니다.
게임의 모습과 모양에 대한 스크린 샷이나 지식이 없으면 솔루션을 모두 추측 할 수 있지만 특정 조언을 제공 할 구체적인 지침은 없습니다.
Unity에서는 Screen 클래스 : Screen.width
및 Screen.height
(다른 속성 중에서) 을 사용하여 현재 화면의 크기에 액세스 할 수 있습니다 . 그런 다음 카메라 의 종횡비를 변경하여 화면 크기와 눈에 보이는 것에 대한 개인적 기대에 따라 다른 크기의 화면에서 보이는 것을 변경할 수 있습니다.
HUD 디스플레이의 크기를 올바르게 조정해야하는 경우 모든 기능 의 화면 크기에 따라 GUI 변환 매트릭스 를 변경하면 OnGUI()
됩니다. 이 간단한 스크립트를 작성하고 원하는 GUI 요소를 렌더링 할 수있는 모든 것에 첨부하여 이전에 수행했습니다.
//GUI values in code are assigned based on an 800x600 screen
private var nativeWidth : float = 800.0f;
private var nativeHeight : float = 600.0f;
private var guiMatrix : Matrix4x4;
function Start ()
{
var scale : Vector3 = Vector3(Screen.width / nativeWidth,
Screen.height / nativeHeight,
1.0f);
guiMatrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, scale);
}
function GetGUIMatrix() : Matrix4x4
{
return guiMatrix;
}
그런 다음 실제 OnGUI()
함수에서 변환 행렬을 즉시 설정했습니다.
function OnGUI()
{
GUI.matrix = guiScale.GetGUIMatrix();
/* Everything Else */
}