Unity 3D для разработки игр на Android-устройства | [Профессиональный мультиплатформенный игровой движок]



Реп: (59)

Прошлые версии


Unity3D — это мультиплатформенный инструмент для разработки двух- и трёхмерных приложений и игр, работающий под операционными системами Windows и OS X. Созданные с помощью Unity приложения работают под операционными системами Windows, OS X, Linux, Android, Apple iOS, Windows Phone, BlackBerry, а также на игровых приставках Wii, PlayStation 3 и Xbox 360. Есть возможность создавать интернет-приложения с помощью специального подключаемого модуля к браузеру Unity, а также с помощью экспериментальной реализации в рамках модуля Adobe Flash Player. Позже от поддержки Flash отказались. Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL.

Список поддерживаемых платформ:
  • Android
  • WP8
  • iOS
  • BlackBerry 10
  • Tizen
  • Wii U
  • OculisRift
  • GearVR
  • XBox 360/ XBox One
  • PS3/PS4/PSVita
  • Windows/Windows Store App
  • Linux/SteamOS
  • Mac
  • WebPlayer
  • WebGL
  • AndroidTV
  • Samsung SmartTV

С чего начать разработку под мобильные платформы:

Исходники:

Сайты:

Видеоуроки:

Текстовые уроки:

Плагины:

F.A.Q. (будет дополняться)
В.: У меня отсутствует часть сообщений в консоли, хотя они точно должны там быть.
О.: Выключите опцию Collapse в консоли.

В.: Как мне реализовать паузу?
О.: Наиболее простой вариант — установить Time.timeScale в ноль.

В.: Как заставить два меш-коллайдера взаимодействовать?
О.: Включить опцию Convex у обоих.

В.: Как отключить/заблокировать курсор?
О.: Screen.showCursor; Screen.lockCursor.

В.:Как придать телу импульс?
О.: Rigidbody.AddForce с параметром ForceMode.Impulse. 

В.: Как изменить громкость всех источников звука в сцене?
О.: AudioListener.volume

В.: Как избавиться от смазывания текстур при отдалении от них камеры?
О.: Отключить генерацию mipmaps в настройках импорта текстуры. 

В.: Как отключить вывод предупреждений в консоль?
О.: #pragma warning disable (в справке msdn даны подробности)

В.: Как спозиционировать Scene View на выбранном объекте?
О.: Edit > Frame Selected или просто клавиша F.

В.: Как сделать объект невидимым для Raycast?
О.: Поставить его в стандартный слой Ignore Raycast. 

В.: Как сделать так, чтобы игра была в горизонтальном а не в вертикальном режиме?
О.: В Player Settings нужно выбрать пункт Landscape left в Screen оrientation.

В.: Как отключить обработку коллизий для коллайдера?
О.: Включить опцию коллайдера isTrigger. Однако, такой коллайдер всё ещё будет принимать Raycast. 

В.: Куда сохраняются логи редактора?
О.: C:\Documents and Settings\zaicheg\Local Settings\Application Data\Unity\Editor\Editor.log
Этот же документ можно посмотреть, нажав Open Editor Log в консоли.

В.: Куда сохраняются логи приложения?
О.: Для standalone: _Data\output_log.txt. Для web: C:\Documents and Settings\user\Local Settings\Temp\UnityWebPlayer\log

В.: Где можно посмотреть, какие ресурсы сколько занимают в моём билде?
О.: Там же, в Editor.log (после сборки билда). 

В.: У меня глючит физика.
О.: Проверьте, осущетвляются ли все физические действия в FixedUpdate(). Увеличьте размеры объектов. Избавьтесь от тонких (или безтолщинных) мешей (Plane). Уменьшите FixedTimesetp. НЕ ДВИГАЙТЕ СТАТИЧЕСКИЕ КОЛЛАЙДЕРЫ (начиная с Unity5 уже можно, но всеравно не стоит)

B.: Не получается отредактировать элемент массива mesh.vertices (mesh.normals и прочее).
О.: Редактируйте во временном массиве vertTemp, а потом mesh.vertices = vertTemp.

В.: Я отключил скрипт, но он всё равно частично работает!
О.: Отключение скрипта действует лишь на вызов метода Update(). Start, Awake и прочие будут работать. 

В.: Как увеличить частоту физических расчётов?
О.: Edit > Project Settings > Time > Fixed Timestep

В.: Как приостановить выполнение в Editor Mode (поставить на паузу)?
О.: Debug.Break

В.: Как отобразить кириллицу в GUI?
О.: Локализация в коде это плохо. Нужно хранить текст в текстовых файлах и через код вытаскивать нужные строчки. Например, так (не самый лучший пример, но суть понятна)

В.: Как мне подгружать дополнительные ресурсы в рантайм?
О.: AssetBundles.

В.: Как менять хоткеи редактора?
О.: HKEY_CURRENT_USER\Software\Unity Technologies\Unity Editor

В.: Как разрешить игре работу "в фоне"?
О.: Edit → Project Settings → Player → Run in Background

В.: Почему не работает динамичный батчинг?
О.: В Unity есть лимит на количество вертексных атрибутов в 900 штук (лимит поставлен юнитеками опытным путем, может быть изменен в будущем, самому поменять его нельзя), именно вертексов, а не поликов. Т.е. смотрим на шейдер, которым хотим что-то отрисовать, на его входящие параметры. Видим, например, position, uv, normal - 3 атрибута. Делим 900 на 3, получаем лимит в 300 вертексов. Вот если модели с материалом на данном шейдере будут не более 300 вертексов - они будут сбатчены. Т.е. если отказаться от normal в шейдере, то получим position, uv - 900 / 2 = лимит в 450 вертексов. Если откажемся от uv (можно посчитать в том же вершинном шейдере для статичной геометрии, но это уже специфичные вещи), то получим 900 / 1 = лимит в 900 вертексов. От position отказаться нельзя, это координаты самого вертекса. Аналогично, если передавать position, uv, uv2, normal, tangent, color, то получим 900 / 6 = лимит в 150 вертексов.

В.: Почему возникают баги с обработкой столкновений коллизии?
О.: Это не баги, это непонимание того, как работает физика в юнити, уже было неоднократно объяснено. Коллайдеры без RB двигать нельзя, двигать нельзя, двигать нельзя - они считаются статичным миром, который двигаться не может и внутри расчитывается с оптимизацией по кластерам. Как только статичный коллайдер двигается - весь статичный мир перестраивается. Объекты с RB считаются отдельно как динамические объекты. Собственно, отсюда и "баг" - т.к. статичный мир не может двигаться, то и события наступать не могут при его принудительном движении.
P.S. Судя по профайлеру тот же CharacterController является статик-коллайдером со всеми вытекающими последствиями.
P.P.S. После выхода Unity 5 стало можно, но всеравно не тоит...

В.: Почему не работает Asset store? Как заставить работать?
О.: Попробуйте выключить режим использования DirectX 11

В.: Сколько стоит Unity?
О.: https://store.unity3d.com/shop/

В.: Какие отличия между Pro-версией и обычной?
О.: Заходим на страницу покупки Unity и на нужной лицензии выбираем Read more. После этого появится окошко, в котором можно посмотреть отличия между лицензиями.

В.: Где можно взять исходный код Unity?
О.: Нажмите здесь, выберете Россию, потом свяжитесь с представителями Unity Technologies. Разумеется это не бесплатно
Оригинальный текст с сайта Unity:
"If you want to license Unity to develop content for consoles and/or for embedding, cloud distribution or to access Unity source code, contact us here."


Правила поведения в теме:
  • Прежде чем задать вопрос, обязательно читайте F.A.Q. и пользуйтесь поиском по теме, возможно на ваш вопрос уже есть ответ!
    Кнопка поиск находится в правом верхнем углу.
  • Сообщения, не относящиеся к теме и вопросы, ответы на которые есть в F.A.Q. будут удаляться!!!
  • Обсуждение пиратских версий Unity или просьбы выложить пиратский контент, а так же сообщения, содержащие пиратский контент будут удаляться, а авторы по возможности будут караться!!!


В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку "Жалоба" под сообщениями, на которые необходимо добавить ссылки.
Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).


Сообщение отредактировал derak1129 - 07.10.20, 10:38
Причина редактирования: Версия Unity 2020.1.7



Реп: (694)
А юнити поддерживает альфу?



Реп: (154)
kotketa, да



Реп: (694)
Lord Kratos,
А как включить? Я имортировал модель, а Текстурки на белом фоне



Реп: (154)
kotketa, материал transparent поставьте, он прозрачность поддерживает.



Реп: (694)
чтобы зацикливал звук, надо поставить галочку на loop, но он не зацикливает :(



Реп: (0)
помогите не могу скомпилировать проект.выдает Error building Player: Win32Exception: ApplicationName='java.exe', CommandLine='-Dcom.android.sdkmanager.toolsdir="C:/android-sdk-windows\tools" -classpath "C:/android-sdk-windows\tools\lib\sdkmanager.jar" com.android.sdkmanager.Main list targets', CurrentDirectory=''



Реп: (10)
Я вот не понимаю, создал модель в скетче(большую), затекстурил в максе, кинул в юнити, но она его не полностью открывает (нету некоторых полигонов)



Реп: (503)
matveev96alexxx,
Ява и сдк установленны?

Если перевести ошибку на русский и логически подумать, можно прийти к выводу, что ему нужна ява

Сообщение отредактировал phonecrusher_nik - 08.11.12, 21:02



Реп: (0)
ито и то установлено.яву ставил 32 и 64 бит все равно выдает



Реп: (6)
Через что можно делать террайн для unity? а то пишут что стандартный использовать ненадо..



Реп: (27)
darkwolf127, 3d Max, Blender - в них создаешь модель, а потом экспортируешь в Unity.



Реп: (6)
oiky's @ 9.11.2012, 13:10 *
darkwolf127, 3d Max, Blender - в них создаешь модель, а потом экспортируешь в Unity.

в них обоих можно налаживать текстуры?

Сообщение отредактировал darkwolf127 - 09.11.12, 07:53



Реп: (27)
darkwolf127, в максе да, блендером не пользовался, вроде как zbrush'ом блендеровские модели разукрашивают, но могу ошибаться.



Реп: (694)
oiky´s,
в блендере текстурки накладываются



Реп: (694)
Как в яваскрипте определить фог? а точнеее как его отключить?



Реп: (468)
kotketa @ 10.11.2012, 18:06 *
Как в яваскрипте определить фог? а точнеее как его отключить?

RenderSettings.fog = false;
Справка

Сообщение отредактировал tibers - 10.11.12, 18:44



Реп: (25)
Скажите пожалуйста как можно управлять объектом с компонентом Network с клиента и сервера, а не только с сервера :sveta:



Реп: (364)
Патчер для превращения Unity4 в ПРО версию. Работает как на бета-версиях, так и на финалке.


  1. Скачиваем файл
  2. Распаковываем exe в папку с Unity (необязательно). Запускаем. Указываем через Browse папку с unity.exe.
  3. Если у вас финальная версия или бета f7 (что одно и тоже), указываем 4.0.0f7
  4. Кнопкой Rand генерируем рандомный ключ продукта.
  5. Нажимаем Patch. В корне папки с Unity.exe появится файл лицензии (*.ulf)
  6. Переносим файл лицензии в папку C:\ProgramData\Unity
  7. Запускаем Unity 4, видим, что она теперь ПРО со всеми аддонами.
  8. Делаем крутейшие игры и выкладываем в ветке 4PDA. Profit!


Патчер: Прикрепленный файлUnitu_patch4_PRO.zip ( 217.73 КБ )



Реп: (295)
Начну свою череду глупых вопросов...

Делаю арканоид. Есть набор блоков.

public class Block : MonoBehaviour {


void OnTriggerEnter () {
Destroy(gameObject);
}
}


Хочется при уничтожении блока (при попадании мяча) совершать действия над соседним блоком.

Добавил параметры блоку

public class Block : MonoBehaviour {

public int x;
public int z;

void OnTriggerEnter () {
Destroy(gameObject);
BreakoutGame.DropBlock(x, z+1);
}
}


И скрипт, следящий за игрой.

public class BreakoutGame : MonoBehaviour
{
static private Block]] blocks;

void Awake()
{
foreach(GameObject obj in GameObject.FindGameObjectsWithTag("Pickup")){
Block block=(Block)obj;
int x=block.x;
int z=block.z;
blocks[x][z]=block;
Debug.Log(obj.GetType());
}
}
static public void DropBlock(int x, int y){
blocks[x][y+1].transform.Translate(0, -1*Time.deltaTime, 0);
}
}

Собственно идея - при запуске сцены - формируем двумерный массив объектов Блок. И из скрипта блока вызываем метод DropBlock, который произведет операции с нужным блоком.

Проблема - не могу сформировать массив объектов Блок, поскольку Block block=(Block)obj; не кастуется. Cannot convert type `UnityEngine.GameObject' to `Block'

Что делать?



Реп: (21)
Попробуй создать отдельный тег «блок» и прописать его или создай отдельный скрипит под движение соседнего блока
Get.component(название отдельно скрипта ).enable = false;


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 28.03.24, 22:06