Unity и 2D
Как нарисовать 2D спрайт в юнити?
GUI.DrawTexture? Если да то можно примерчик небольшой |
Ответ: Unity и 2D
Для каких целей нужен этот 2d спрайт?
|
Ответ: Unity и 2D
Вобще для фона меню
но есть разные методы создания спрайта? |
Ответ: Unity и 2D
Если делаешь меню - то лучше, конечно, запилить всё это дело в 3D в самом редакторе уровней.
Ставишь ортогональную камеру, а перед ней - plane'ы, разворачиваешь их лицом к камере и вуаля, вот тебе и спрайты. Если делаешь ГУИ во время проигрывания какого-нибудь уровня, то удобней будет использовать GUI.DrawTexture(). |
Ответ: Unity и 2D
Для фона можно создать плейн с текстурой.
Можно так же нарисовать с помощью GUI.Label или GUI.DrawTexture Примеры есть по ссылкам. Если надо поворачивать GUI, то можно использовать GUI.matrix, для этого есть метод GUIUtility.RotateAroundPivot Желательно после вращения восстанавливать исходную матрицу GUI(т.е. сначала нужно ее сохранить в переменную, а потом назначить заново). |
Ответ: Unity и 2D
А вообще, честно говоря я не думаю что это вопрос, который стоит задавать на форуме.
Спрашиваешь: "Как нарисовать 2D спрайт в юнити?" И тут же сам и отвечаешь: "GUI.DrawTexture". Блин, каких-то строго определенных правил в построении ГУИ (как, собственно, и во многом другом в игроделании) нет. Каждый делает так, как ему удобней и на что хватит фантазии. Если работает - уже хорошо. Программирование - это ж, ёпта, творческая профессия! :) Спрайты можешь сделать хоть через GUI.DrawTexture, а можешь через GUI.Label, или через GL.Begin/GL.Vertex/GL.End, либо просто сделать их 3D-плоскостями в редакторе. А можешь вообще извратиться и намутить пиксельный шейдер (в качестве полноэкранного эффекта), который будет напрямую в задний буфер рисовать тебе картинку, какую тебе надо. И это тоже, в принципе, вариант. Так что меньше спрашивай, больше экспериментируй! Вот у меня в начале 2000-го вообще интернета не было (даже модемного!), спросить не у кого, были только бумажные книжки. Приходилось сидеть и по примерам, да методом тыка всё изучать.. И вот тогда и приходило полное понимание того, что и как работает. Эх, вот были времена!!... :) P.S. Вот ты просишь примерчик по GUI.DrawTexture. Ты справку читал? Чем она тебя не устраивает? Там примеры аж на 3 (трех!!) языках! Даже плохо зная английский можно понять, как это работает. Не? |
Ответ: Unity и 2D
Спасибо
|
Ответ: Unity и 2D
через DrawTexture или Label делать спрайты очень плохая идея - бить за такое творчество))
|
Ответ: Unity и 2D
Цитата:
|
Ответ: Unity и 2D
Программное создание меша
http://docs.unity3d.com/Documentatio...ence/Mesh.html |
Ответ: Unity и 2D
Нашел бесплатный ассест для 2Д - http://www.wyrmtale.com/orthello
на базе C#. Спрайты в виде мешей из 2 треугольников ну вроде туты неплохие и все так складно в общем. Стоит на него упасть или лучше лепить свое? Рах жду твоего мнения. |
Ответ: Unity и 2D
Не использовал, надо будет поглядеть. Я сейчас использую свои наработки.
|
Ответ: Unity и 2D
Цитата:
|
Ответ: Unity и 2D
Поделиться в данный момент нет. Но больших плюшек там нет, функционала меньше чем в любом законченном фреймворке.
|
Ответ: Unity и 2D
Для меню с кнопками делать отдельную сцену?
|
Ответ: Unity и 2D
Можно отдельную камеру, рендерющую отдельный слой. А так по желанию)
|
Ответ: Unity и 2D
Можно подробнее?
Добавить на сцену вторую камеру? Как сделать чтобы она рендерила только свой слой? Как переключаться между камерами? Заранее сорри - я пока полный нуб. |
Ответ: Unity и 2D
1. Добавить камеру.
2. Установить ей режим Orthographic 3. Размер задается как половина высоты нужного разрешения экрана. 4. Создать слой для камеры (в правом верхнем углу Unity есть редактор слоев и тегов). 5. Выделить объекты меню и перенести их на этот слой. 6. Камере Выставить Crear - Depth 7. Установить Culling Mask с нужным слоем, все остальные выключить. 8. Настроить камере Depth - чтобы визуализировала после основной. 9. Основной камере в Culling Mask отключить слой меню. |
Ответ: Unity и 2D
Спасибо, изучу... А какой вариант оптимальнее и почему?
|
Ответ: Unity и 2D
.Ну подумай: если у тебя будет 2 сцены с одной камерой, или одна сцена с 2мя,то что лучше?
Конечно если ты не хочешь меню в текущем скине, а типо как главное меню. |
Ответ: Unity и 2D
Цитата:
|
Ответ: Unity и 2D
А почему вы так боитесь загрузки-выгрузки? Это медленно?(будет задержка?) Но ведь это потребует меньше оперативной памяти? Не так ли?
|
Ответ: Unity и 2D
Цитата:
|
Ответ: Unity и 2D
Цитата:
|
Ответ: Unity и 2D
Цитата:
Правда есть немного ограничений. |
Ответ: Unity и 2D
Цитата:
Цитата:
|
Ответ: Unity и 2D
Цитата:
И все же: КАК это зависит от требуемой задачи??? Я так и не понял...:crazy: |
Ответ: Unity и 2D
Задачи:
1. Главное меню. Вполне приемлема отдельная сцена. 2. Игровое меню. На паузе сцена игры не выгружается. Что не ясно? |
Ответ: Unity и 2D
Новый вопрос: как оптимальнее временно убрать спрайт со сцены ( чтобы он не отрисовывался )? Задвинуть его за фон по оси Z или в сторону по оси X?
|
Ответ: Unity и 2D
Если спрайт это меш, то достаточно его рендерер отключить.
renderer.enabled = false; |
Ответ: Unity и 2D
А если ещё и нужно исключить его из расчётов: gameObject.active = false
|
Ответ: Unity и 2D
Цитата:
|
Ответ: Unity и 2D
Новый вопрос:
- как в скрипте при нажатии кнопки перейти на новую сцену ( какая ф-ия вызова новой сцены) - как выйти из игры (какая ф-ия выхода из приложения ). Дайте совет новичку для 2Д игры, что лучше: - изучить фреймворк Orthello 2D (там вроде нет открытых исходников) и их классы; - или самому сделать меш спрайта и пользоваться общими мануалами Юнити? |
Ответ: Unity и 2D
класс приложения тебе а помощь: http://docs.unity3d.com/Documentatio...plication.html
Твой выбор |
Ответ: Unity и 2D
Хочу сделать, чтобы спрайт реагировал на наведение мыши на него ( кнопка меню подсвечивалась), нашел фцию: void OnMouseOver()
но она не работает! В чем дело? Пример - просто сдвинуть спрайт: Код:
using UnityEngine; |
Ответ: Unity и 2D
Сообщение OnMouseOver приходит только если на объекте есть коллайдер. Либо если это GUITexture или GUIText. Плюс на мобильниках не работает.
|
Ответ: Unity и 2D
Цитата:
|
Ответ: Unity и 2D
Пока небыло необходимости в переходе на четверку, но спасибо за инфу.
|
Ответ: Unity и 2D
Новый вопрос - при анимации требуется не сдвигать текстуру на спрайте, а менять сами файлы текстуры ( в каждом файле свой кадр ). Подскажите как это сделать? Надо наверно сделать заготовку массива текстур, и потом накладывать их на мешь меняя индекс в массиве. Подскажите тип данных и ф-ию наложения. Лучше в виде фрагментов кода. Спасибо.
Спасибо, уже додумался.... вроде получилось... ура!... Код:
public class Animator : MonoBehaviour |
Ответ: Unity и 2D
Ты извращенец таким макаром анимировать. А если 1000 тексов будет? Для таких дел есть такая штука, как тайлинг.
|
Ответ: Unity и 2D
|
Ответ: Unity и 2D
В смысле делать большую текстуру со всеми кадрами, и сдвигать координаты?
|
Ответ: Unity и 2D
Но при этом памяти отожрет столько же... и какая выгода?
Ну и потом художник уже нарисовал в отдельных файлах, а мне самому сводить лень. |
Ответ: Unity и 2D
Цитата:
|
Ответ: Unity и 2D
А ты проверь да узнаешь( левую текстуру большую возьми и много мелких общей площадью с нее).
|
Часовой пояс GMT +4, время: 04:11. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot