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/