Если вы хотите масштабировать объекты, которых нет на холсте, основываясь на разрешении, то я ничего не могу придумать. Однако было бы довольно легко реализовать что-то, что делает это.
Создайте сценарий и прикрепите его к каждому объекту, который должен масштабироваться в зависимости от текущего разрешения.
public class ScaleObjectFromRes : MonoBehaviour
{
private Vector2 targetResoultion = new Vector2(1920, 1080); //can be changed here or elsewhere
private bool matchWidth = true; //0=width, 1=height used to maintain aspect ratio
// Start is called before the first frame update
void Start()
{
float difference = CalculateDifference();
ScaleObj(difference);
}
void ScaleObj(float diff)
{
gameObject.transform.localScale += (gameObject.transform.localScale * (diff/100));
}
private float CalculateDifference()
{
Vector2 actualResolution = new Vector2(Screen.width, Screen.height);
Vector2 change = actualResolution-targetResoultion;
Vector2 percentChange = (change / targetResoultion) * 100;
//match width/height
if (matchWidth)
{
return percentChange.x;
}
else
{
return percentChange.y;
}
}
Это масштабируетобъект на основе разницы в процентах между целевым разрешением и фактическим разрешением. Мы можем выбрать совпадение разницы в зависимости от ширины или высоты, чтобы гарантировать постоянное соотношение для объекта. При этом предполагается, что величина вектора масштаба объекта равна 1. Надеюсь, это поможет!