Я проверил онлайн как ответы на этот вопрос, но нашел только неопределенные ответы, я был бы так благодарен, если бы кто-то мог помочь мне с этим.Как сделать игру подходящей для любого размера экрана
Я создаю маленькую игру, и я почти завершаю, я использовал настройки сборки Unity для создания игры, но затем столкнулся с проблемой. игра была разработана в соотношении сторон 16:10, так как она подходит моему монитору, но в любое время, когда я создаю игру на меньшем разрешении, части игры обрезаются с экрана. Я намеревался выпустить эту игру для Android и, очевидно, нужно что-то, что позволяет игре поместиться на любом экране или планшете.
GUI масштабируется в соответствии с возможностью сделать масштаб холста с размером экрана «im ищет то же самое для всего остального в игре».
Дополнительная информация:
У меня есть ортогональной Camera
мне сказали, на других форумах, что мне нужно Camera.main.aspect = ScreenWidth/ScreenHeight;
но в моем скрипте это ничего не делает.
Я включил мой сценарий камеры, а также:
общественного класса CameraScript: MonoBehaviour {
public Transform PlayerTarget;
public float YaXis;
public float XaXis;
public float moveDown;
public float moveUp;
public Vector2
margin,
Smoothing;
private Vector3
_min,
_max,
PlayerPosition;
public bool IsFollowing;
public BoxCollider2D CamBounds;
public void Start()
{
//float worldScreenHeight = Camera.main.orthographicSize * 2f;
//float worldScreenWidth = worldScreenHeight/Screen.height * Screen.width;
//Camera.main.aspect = worldScreenWidth/worldScreenHeight;
_min = CamBounds.bounds.min;
_max = CamBounds.bounds.max;
IsFollowing = true;
}
public void Update()
{
var x = transform.position.x;
var y = transform.position.y;
if (IsFollowing)
{
if (Mathf.Abs(x - PlayerTarget.position.x)> margin.x)
x = Mathf.Lerp (x, PlayerTarget.position.x, Smoothing.x * Time.deltaTime);
if (Mathf.Abs(y - PlayerTarget.position.y)> margin.y)
y = Mathf.Lerp (y, PlayerTarget.position.y, Smoothing.y * Time.deltaTime);
}
var CameraHalfWidth = GetComponent<Camera>().orthographicSize * ((float)Screen.width/Screen.height);
x = Mathf.Clamp (x, _min.x + CameraHalfWidth, _max.x - CameraHalfWidth);
y = Mathf.Clamp (y, _min.y + GetComponent<Camera>().orthographicSize, _max.y - GetComponent<Camera>().orthographicSize);
if (Input.GetKey(KeyCode.DownArrow)){
transform.position = new Vector3 ((x - XaXis) , (y + YaXis) - moveDown, transform.position.z);
}else if (Input.GetKey(KeyCode.UpArrow)){
transform.position = new Vector3 ((x - XaXis) , (y + YaXis) + moveUp, transform.position.z);
}else
transform.position = new Vector3 ((x - XaXis) , (y + YaXis), transform.position.z);
}
}
эй кто натыкается на этой странице, было бы здорово, если бы вы знать ответ и поделиться своими знаниями со мной и всеми остальными. << thats not означало, чтобы звучать как im, являющийся членом, я только перечитал его, и это может наткнуться немного «dickheadish». это не тот случай, я просто хочу закончить свою игру, и я застрял, нетерпелив и застрял, что ужасно. снова ... не будучи членом ... но, пожалуйста, ответь :) Уступ! –