Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Размещение группы объектов по заданному шаблону
Допустим вы хотите поместить группу объектов по сетке или кругу. Как всегда, это может быть выполнено двумя способами: 1. Сборка объекта полностью из кода. Это утомительно! Ввод значений из скрипта и медленный и не интуитивный, и не стоит затраченных усилий. 2. Сделать полностью готовый объект, дублировать его и несколько раз разместить его на сцене. Это опять же утомительно, а размещать объекты точно по сетке достаточно сложно. Так используйте вместо этого Instantiate() с префабом! Мы думаем, что вы уже поняли нашу идею, почему префабы так удобны в этих случаях. Вот необходимый для этих сценариев код: // JavaScript // Instantiates a prefab in a circle var prefab: GameObject;var numberOfObjects = 20;var radius = 5; function Start () { for (var i = 0; i < numberOfObjects; i++) { var angle = i * Mathf.PI * 2 / numberOfObjects; var pos = Vector3 (Mathf.Cos(angle), 0, Mathf.Sin(angle)) * radius; Instantiate(prefab, pos, Quaternion.identity); }} // C#// Instantiates a prefab in a circle public GameObject prefab;public int numberOfObjects = 20;public float radius = 5f; void Start() { for (int i = 0; i < numberOfObjects; i++) { float angle = i * Mathf.PI * 2 / numberOfObjects; Vector3 pos = new Vector3(Mathf.Cos(angle), 0, Mathf.Sin(angle)) * radius; Instantiate(prefab, pos, Quaternion.identity); }} // JavaScript // Instantiates a prefab in a grid var prefab: GameObject;var gridX = 5;var gridY = 5;var spacing = 2.0; function Start () { for (var y = 0; y < gridY; y++) { for (var x=0;x<gridX;x++) { var pos = Vector3 (x, 0, y) * spacing; Instantiate(prefab, pos, Quaternion.identity); } }} // C# // Instantiates a prefab in a grid public GameObject prefab;public float gridX = 5f;public float gridY = 5f;public float spacing = 2f; void Start() { for (int y = 0; y < gridY; y++) { for (int x = 0; x < gridX; x++) { Vector3 pos = new Vector3(x, 0, y) * spacing; Instantiate(prefab, pos, Quaternion.identity); } }}Ввод Unity поддерживает как устройства ввода используемые играми (клавиатура, джойстик и т.д.), так и и сенсорные экраны мобильных устройств. Все эти типы ввода показаны в этом разделе. Кроме того, Unity может воспользоваться микрофоном компьютера и веб-камерой для ввода аудио и видео данных. Смотрите разделы руководства Audio иGraphics для получения дополнительной информации. Date: 2015-09-24; view: 325; Нарушение авторских прав |