Я пишу игру Android и, поскольку я хотел, чтобы в нее играли в портретном режиме, я хочу, чтобы масштаб объектов оставался неизменным в отношении ширины экрана. Я думаю, что мне удалось сделать это с помощью этого кода:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Android;
public class PowerPosition : MonoBehaviour
{
void Start()
{
float w = Screen.width;
float h = Screen.height;
Vector2 position = (Camera.main.ScreenToWorldPoint(new Vector2(w * 0.9f, w * 0.53f)));
float ratio = (w / h) / (9f / 16f);
gameObject.transform.position = new Vector3(position.x * ratio, position.y * ratio, 0);
gameObject.transform.localScale = new Vector3(gameObject.transform.localScale.x * ratio, gameObject.transform.localScale.y * ratio, gameObject.transform.localScale.z * ratio);
Проблема с позиционированием. Это изменяет и объекты, которые должны иметь относительные расстояния друг от друга, запутываются. Объекты, которые должны появляться один над другим, становятся слишком близкими и перекрываются. «Положение * отношение» было тестом, оно не работает ни с этим, ни с ним. Вот, например, у меня были предметы, которые я хотел держать на одинаковом расстоянии от нижнего правого края экрана.
Как это можно исправить?