2016-05-30 4 views
1

У меня есть игра, такая как Понг, за исключением того, что вы управляете обоими веслами и стараетесь держать мяч в границах. Я хочу, чтобы весло всегда было на 1/3 высоты экрана для всех разрешений. Поэтому, если высота = 900, весло должно быть 300. По какой-то причине я не могу найти способ, который работает для всех разрешений в любом месте. Я чувствую, что мне нужно выполнить это через скрипт. Вот изображение компонентов для моего весла.Масштабирование определенной высоты в Unity

enter image description here

мне нужна общая формула поэтому высота лопатки всегда 1/3 высоты экрана.

Спасибо за помощь!

ответ

1

Получить высоту холста и назначить весло sizeDelta иметь размер у равную высоте холста, деленное на 3.

Это сценарий, предположил, что вы приложите его к веслом:

public Canvas myCanvas; 

void Start() { 
    float canvasHeight = myCanvas.pixelRect.height; 
    GetComponent<RectTransform>().sizeDelta = new Vector2(GetComponent<RectTransform>().sizeDelta.x, canvasHeight/3f); 
} 
+0

ли вы говорите, что я должен положить его в холст, а затем изменить размер RectTransformer? – Luke

+0

Я видел, что у вас есть компонент RectTransform, прикрепленный к весле, поэтому я предположил, что у вас есть его внутри холста. Если это так, да, вы меняете ширину компонента RectTransform весла. Если вы не используете холст, вы можете использовать скрипт для получения размера камеры (при условии, что камера закрывает весь экран). – Cress

+0

Это для изображений или спрайтов в SpriteRenderer – Luke

Смежные вопросы