@tryvols
Front-End разработчик

Как задать скриптом размер квадрата в Unity и разместить его относительно левого верхнего угла(android 2d)?

Здравствуйте. Всю ночь роюсь в мануалах, уже устал от этого, если честно. Загвоздка вот в чем. Что бы всегда и при любых разрешениях экрана квадраты оставались квадратами, как и отступы между ними - все это пришлось высчитывать прогамно(ширину квадрата и отступы, которые зависят от ширины экрана), то есть скриптами. Но никак не могу найти функции что бы изменить размеры, да и почему-то расположение объекта высчитывается при помощи position с нижнего левого угла.

Заранее спасибо.
  • Вопрос задан
  • 2130 просмотров
Решения вопроса 2
@Espleth
Как я понял из последнего абзаца, речь идет о GUI. Ок.
Тогда менять привязку к углу экрана можно нажав на эту кнопку
ilRAnrm.png
А вообще смотрите RectTransform и пользуйтесь в скриптах им, там есть возможность задавать размер. Только рано вам его изучать, вы даже Transform пока не изучили, раз не смогли использовать scale, чтобы изменить размер вашего квадрата.
Почему квадраты у вас на разных разрешениях становятся не квадратными - я без понятия, не должны изменяться, ваш косяк скорее всего.
Ответ написан
@tryvols Автор вопроса
Front-End разработчик
using UnityEngine;
using System.Collections;

public class Block_Script : MonoBehaviour {

	private GameObject block;

	private float paddingHeight = Screen.height / 100 * 20,
				padding = Screen.width / 100 * 5,
				width = Screen.width / 100 * 19;

	private float	paddingTop;
	private float 	paddingLeft;

	// Use this for initialization
	void Start () {

	}
	
	// Update is called once per frame
	void Update () {
	
	}

	void OnGUI () {
		paddingTop = paddingHeight + padding;
		paddingLeft = padding;

		for (int i = 0; i < 16; i++) {

			if (i % 4 == 0) {
				paddingTop += padding + width;
				paddingLeft = padding;
			}

			if (GUI.Button (new Rect (paddingLeft, paddingTop, width, width), "")) {
				print ("You clicked me!");
			}

			paddingLeft += padding + width;
		}
		
	}
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы