Version: 2017.4
Первые шаги в iOS разработке
iOS account setup

Основы Unity iOS

Этот раздел посвящён самым распространённым вопросам, которые возникают при начале работы с iOS.

Подготовки

Я только что получил от Apple подтверждение разработчика iPhone, но я никогда ранее не разрабатывал для iOS. С чего мне начать?

О: Скачайте SDK, доступный на сайте разработчиков Apple, и укажите вашу команду, устройства и provisioning профили. Мы предлагаем вам базовый список шагов, чтобы начать работу.

Могут ли игры Unity запускаться на iPhone Simulator?

A: No, but Unity iOS can build to iPad Simulator if you’re using the latest SDK. However the simulator itself is not very useful for Unity because it does not simulate all inputs from iOS or properly emulate the performance you get on the iPhone/iPad. You should test out gameplay directly inside Unity using the iPhone/iPad as a remote control while it is running the Unity Remote application. Then, when you are ready to test performance and optimize the game, you should publish to iOS devices.

Функции Unity

Как мне работать с сенсорным экраном и акселерометром?

A: In the scripting reference inside your Unity iOS installation, you will find classes that provide the hooks into the device functionality that you will need to build your apps. Consult the Input page for more information.

Мои существующие системы частиц на iOS работают очень медленно. Что мне делать?

A: iOS has a relatively low fillrate. If your particles cover a large portion of the screen with multiple layers, it will kill iOS performance even with the simplest shader. We suggest baking your particle effects into a series of textures offline. Then, at run-time, you can use 1–2 particles to display them via animated textures. You can get ok results with a minimum amount of overdraw this way.

Я могу сделать игру, которая активно использует физику?

A: Physics can be expensive on iOS as it requires a lot of floating point number calculations. You should completely avoid MeshColliders if at all possible, but they can be used if they are really necessary. To improve performance, use a low fixed framerate using Edit->Time->Fixed Delta Time. A framerate of 10–30 is recommended. Enable rigidbody interpolation to achieve smooth motion while using low physics frame rates. In order to achieve completely fluid framerate without oscillations, it is best to pick a fixed deltaTime value based on the average framerate your game is getting on iOS. Either 1:1 or half the frame rate is recommended. For example, if you get 30 fps, you should use 15 or 30 fps for fixed frame rate (0.033 or 0.066)

Могу ли я получить доступ к галерее, музыкальной библиотеке или нативному плееру iPod через Unity iOS приложение?

A: Yes, if you implement it. Unity iPhone supports the native plugin system, where you can add any feature you need – including access to Gallery, Music library, iPod Player and any other feature that the iOS SDK exposes. Unity iOS does not provide an API for accessing the listed features through Unity scripts.

Немного о UnityGUI

Как UnityGUI влияет на производительность моих игр?

A: UnityGUI consumes more resources when more controls are used. It is ideal to limit your use of UnityGUI to game menus or very minimal GUI Controls while your game is running. It is important to note that every object with a script containing an OnGUI() call will require additional processor time – even if it is an empty OnGUI() block. It is best to disable any scripts that have an OnGUI() call if the GUI Controls are not being used. You can do this by marking the script as enabled = false.

Ещё какие-нибудь подсказки по использованию UnityGUI?

О: Попробуйте использовать GUILayout как можно меньше. Если вы вообще не используете GUILayout ни в одном из вызовов OnGUI(), вы можете полностью отключить GUILayout рендеринг, используя MonoBehaviour.useGUILayout = false; Это вдвое улучшит производительность рендеринга интерфейса. И наконец, используйте как можно меньше элементов интерфейса в 3D сценах.


Первые шаги в iOS разработке
iOS account setup