Среда, 18 Декабря 2024, 11:58

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
2d игра на unity
pixeyeДата: Среда, 16 Февраля 2011, 17:23 | Сообщение # 21
Red Winter Software
Сейчас нет на сайте
Quote (Don-Andrea)
Задумал сделать 2d игру на Unity на PC. Но не могу найти примеров. Не подскажите? И еще, можно будет эти игры сразу перекомпилировать в iOS, или придется перечисывать часть кода.

На юнити очень даже комфортно делать 2д игры. Создаете 3д плашку ( лучше в максе ) Убивайте у нее все стороны кроме лицевой. Обычная плоская плашка. Сохраняете ее и уже в юнити натягиваете на эту плашку все свои материалы с текстурами. Главный геморой - грамотно рассчитать маштаб. У основной камеры есть настройка - в перспективе и ортографическая камера. Выбираете вторую.

Дальше выбирайте с какого ракурса будете делать. Например с top. Тогда позиция объектов будут располагаться по X Z координатам. Таким образом получается псевдо 2д игра.

Как делать 2д анимации? Допустим у вас спрайт 32 на 32 пикселя. И у вас 5 кадров в анимации. 32*5 = 160 итого в фотошопе готовите текстуру 160в ширину и 32 в высоту пиксела. Все свои кадры располагаете через ровные промежутки расстояния - чтобы они каждая занимали свой 32 пиксельный бокс.

Дальше гуглим;-) шутка) уже загуглено. Приводу пример как можно реализовать смену кадров с переводом коментов.

Code
var uvAnimationTileX = 24; //Количество колонок в вашей текстурной развертке.
//В данном примере их 24

var uvAnimationTileY = 1; //Количество рядов
//1 в примере
var framesPerSecond = 10.0; Кол-во кадров в сек

function Update () {

// Высчитываем индекс
var index : int = Time.time * framesPerSecond;
index = index % (uvAnimationTileX * uvAnimationTileY);

// Размер тайла в нашей текстуре
var size = Vector2 (1.0 / uvAnimationTileX, 1.0 / uvAnimationTileY);

// Режем колонки и столбцы
var uIndex = index % uvAnimationTileX;
var vIndex = index / uvAnimationTileX;

// реализуем смещение

var offset = Vector2 (uIndex * size.x, 1.0 - size.y - vIndex * size.y);

//Первая строчка это смещение индека тайла в нашей текстуре
renderer.material.SetTextureOffset ("_MainTex", offset);
//скейл ( размер текстуры )
renderer.material.SetTextureScale ("_MainTex", size);

Возможно надо будет немного подгонять под свои нужды.

Теперь о порте на Iphone. Судя по вашем вопросам - это первый или около того заход в unity. Так что забудьте. Да- вы сможете сразу перекомпилировать код для IOS. НО. Вам всеравно придется переписать систему управления под IOS тк она там своя и отличается от клавиатуры и мышки на компе;-) + порт на иос несет в себе ряд нюансов которых вы врядли сразу учтете. Вам нужно будет очень хорошо оптимизировать код для того чтобы на иосе у вас выдавало 20-30 фпс. + есть ряд ограничений будь то - не должно за раз на экране быть больше 7-10 тыс вершин (впринципе можно и больше )Нужно стараться использовать как можно меньше DrawCalls. Стараться не вызывать gameObject.find и ей подобных функций в основном цикле скрипта ( Update() ) И прочая прочая. Это можно все понять только когда начнете эксперементировать и тестить. Так же сильно зависит от того для какой версии айфона вы пишите. Чем старее версия тем больше ограничений. Еще очень рекомендуется использовать размер текстур кратно двум ( 32 на 32 64 на 64 128 на 128 и тп ).

+ У вас уже есть лицензия разраба под IOS? если нет то забудьте вообще. СНачала ее получите - это недорого - 100 баксов в год. Там гемороя больше при регистрации.
Вот ссылка
http://developer.apple.com/programs/ios/

У меня гдет 2 недели ушло чтобы ее получить.

Полезные ссылки для любого кто хочет иметь дело с Unity
http://answers.unity3d.com
http://unity3d.com/support/documentation/ScriptReference/


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю



Сообщение отредактировал pixeye - Среда, 16 Февраля 2011, 17:31
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг