Огляд бета-версії Unity 5. Перехід на нову версію Unity

Кілька днів тому «Unity 5 beta 1» злили в мережу. І я думаю, що настав час почати міграцію мого ігрового проекту на нову версію Unity.

unity3d_5_welcome

Зміни

Повний список змін в Unity 5

Unity надає вам інструмент для оновлення коду. Це буде повідомлення про помилку щодо оновлення коду, і вам потрібно натиснути його. Але мені це не дуже допомагає.

  1. Користувач GetComponent() замість властивості quick. Для javascript використовуйте GetComponent.<>()
Вилучено засоби швидкого доступу до властивостей, як-от .rigidBody, .rigidbody2D, .camera, .light, .animation, .constantForce, .renderer, .audio, .networkView, .guiTexture, .collider, .collider2D, .particleSystem, .particleEmitter, .guiText, .hingeJoint для модульності. Натомість використовуйте GetComponent, щоб отримати посилання.
Це змусить вас змінити багато застарілого коду, оскільки воно було швидкішим і кориснішим для користувача short властивість замість GetComponent, але Unity вирішила відмовитися від неї з міркувань модульності.
  1. «transform» тепер кешується на стороні C#, більше не потрібно кешувати його самостійно. І продуктивність GetComponent була покращена. Хороші новини. Для кращої продуктивності ми зазвичай кешуємо значення перетворення, оскільки перетворення доступу було таким самим, як GetComponent(), але ця операція була важкою.

  2. Зміни методу та полів SetTriangles замість SetTriangleStrip orthographic замість isOrthographic (властивість камери) властивість “offset” замість “center” для BoxCollider2D

Зовнішній SDK

NGUI

Працює добре. Вам потрібно вручну змінити код відповідно до змін, які я згадав.

Також не забудьте змінити ці рядки defines #якщо !UNITY_3_5 && !UNITY_4_0 && !UNITY_4_1 && !UNITY_4_2 && !UNITY_4_3 && !UNITY_4_4 && !UNITY_4_5

Photon Cloud (плагін PUN)

Також добре працює, але у мене виникла проблема з класом Ping під час створення для Web GL. Тому просто змініть клас Unityengine.Ping на C# <код> за допомогою System.Net.NetworkInformation; ... System.Net.NetworkInformation.Ping ping = новий System.Net.NetworkInformation.Ping(); System.Net.NetworkInformation.PingOptions options = новий System.Net.NetworkInformation.PingOptions (); options.DontFragment = true; PingReply відповідь = ping.Send (regionIp); while (reply.Status != IPStatus.Success/*!ping.isDone && Time.time < startTime + timeout*/) { // іноді пінг Unity ніколи не повертається, тому тут ми використовуємо тайм-аут yield return 0; }

App42 Cloud

Збій під час входу користувача. Десь усередині lib. Я вже надіслав Шеферцу звіт про аварію.

Підтримка HTML5 (складання WebGL)

Цілі збірки Unity 5 Цілі збірки Unity 5

Додано нове визначення UNITY_WEBGL.

Після перенесення я не зміг скомпілювати свій проект у HTML5. Я отримав повідомлення про помилку: Рекурсивна серіалізація не підтримується. Ви не можете розіменувати PPtr під час завантаження Фатальна помилка в Mono CIL Linker Не вдалося вирішити System.Collections.Hashtable UnityEngine.WWWForm::get_headers()Демонстрацію Angly Bots було зібрано нормально для HTML5. Компіляція займає більше часу, ніж для веб-програвача.

Висновки

Це перша бета-версія, тому вона має деякі помилки та незавершені функції. Періодично виходить з ладу. Схоже, функція Web GL ще не готова. Також немає цілі збірки Tizen. Тому я думаю, що нам потрібно дочекатися більш чіткої версії. Але будьте готові змінити свій код, оскільки ця версія вносить деякі значні зміни.