p_chinのおっぱいブログ

UnityとPerlなど

Unityの4.2.2から変わってる俺得そうな変更をまとめた

なんかUnityの最新versionを使ってゲーム作りたかったり、そろそろiOS8のよさげなfeatureが出て運用中のタイトルのUnityVersionupもありそうだなと思ってたので

普段仕事で使ってるUnity4.2.2から最新までの変更を見てたので、まとめる。

ちなみに当方、EditorやAPIのfeature以外はあんま仕事で使って無いのでそれらの変更に関しては多少抜いてます。

対象

これから運用タイトルの4.2系のUnityをドカッとアップグレードする場合には多少の知見になるかもです。

4.2.2-4.5.4までのRelease Notesを読んでざっくり俺得な修正をまとめてみる

4.3

Editor

  • エディターの新 API に、エディター上の要素を強調表示する Highlighter を追加。エディター上でチュートリアルを提供する場合などに有用
  • 新規アセットまたは実際にコンテンツが変更されたアセットのみがインポートされるように(タイムスタンプだけ変更されたアセットは再インポートされない)
  • Shift + F キーまたは F キー2 回押しでシーンビューのカメラを選択中の GameObject にロックするよう変更
  • プロジェクトのロード完了前にアクティブなビルドターゲットを選択する新コマンドラインスイッチ "-buildTarget " を追加
  • エディターのプロファイリング時に OnGUI イベントがプロファイリングされるように変更

Script

Android

  • Adreno デバイスの glTexSubImage2D を無効化。ダイナミックフォントに関する一部問題を修正

4.3.1

特に無し

4.3.2

特に無し

4.3.3

Android

  • Snapdragon 搭載デバイス上でアプリケーションが突然終了してしまう問題を修正
  • ステータスバーの高さ分だけタッチ入力がオフセットされる場合があった問題を修正

iOS

  • WWW ダウンロードのキャンセル時にクラッシュしていた点を修正

4.3.4

iOS

  • WWWでサイズの大きいファイルをダウンロードする時に失敗していた問題を修正。

4.5

モジュールマネージャー

アップデート可能なプラットフォームサポートを含むモジュールマネージャを導入。iOSAndroidWindows Phone 8Blackberry Unity アドオンは、エディターの完全インストーラーをダウンロードしなくてもアップデートできる。本機能は「プリファレンス」メニューの隣にある「モジュール」メニューから使用可能

エディター機能

新しくなった階層ウィンドウのソート - 各要素のソートはトランスフォーム順になるように変更 新しいエディター API 「AssetDatabase.FindAssets」(string filter、string folders)を導入。ファイル名、タイプ、アセットラベルを基に、アセットデータベースを検索できる。詳細は資料にて確認のこと プロジェクトブラウザ内で現在選択中のアセットを取得する Selection.assetGUIDs を追加。また、プロジェクトブラウザ(2 列表示時)の最初の列で選択しているフォルダの値も返す。なお、これはメインの選択に含まれない

Unity Remote アップグレード

Unity Remote 4 は、iOS および Android 向けのプレイテスト用ソリューションです。Unity 4.5 では、iOS デバイスでテストを行う際にも Wi-Fi の遅延は発生しません。また、加速度センサー、ジャイロ、カメラ画像を含む、あらゆる iOS デバイス入力に対するサポートを追加しました。Unity Remote 4 は、Google Play またはApp Store から無料でご利用いただけます

Editor

Script

  • UNITY_PRO_LICENSE の定義を追加

Serialize

  • シリアライズ(インスタンシエイションやレベルローディングなど)MonoBehaviors のパフォーマンスを 2 倍~5 倍改善
  • 最高!

Substance

  • エディターのメモリ消費を低減
  • エディター内の Substance 処理 は、プレイモード以外では常時マルチスレッド化されるようになった
  • iOS/Android 上におけるランタイム PVRTC 圧縮が高速化および高品質化

WWW

  • 「WWW(string url, byte postData, Hashtable headers)」を廃止予定としたため、かわりに「public WWW(string url, byte[] postData, Dictionary headers)」を使用すること

Android

  • プリロードされたスレッドは、アプリケーションがポーズ状態であればバッテリーを消費しないようになった
  • バックグラウンド起動時のバッテリー消費量が減った?
  • 一部の Adreno GPU で動作する Android 4.4.2 でクラッシュが発生していた問題を修正

iOS

  • WWW リークを修正
  • XCode 5.1 で動作するよう XCode プラグインをアップデート(ビルドおよび実行は動作する見込み)
  • あれ、今までXcode5.1.1でビルドして問題無くゲームプレイ出来てたけど...

4.5.1

特になし

4.5.2

Substance

  • 初期のシーンロード後のメモリフットプリントを低減

4.5.3

Scripte

  • Resources.LoadAsync() を追加し、Resources フォルダからアセットを非同期でロードできるようにした(Pro のみ)

4.5.4

Android

  • IME で Back ボタンを押して閉じようとした時にアプリケーションがクラッシュしてしまう問題を修正しました。

4.6

  • UI周りのEditor機能が一新してるっぽい

以上

ザックリと変わってる所まとめ

  • UnityEditorでの作業が早く快適になってる
  • SceneのLoadやInstansiateの速度が早くなったっぽい
  • ビルドされたアプリケーションの実行時のパフォーマンスが良くなってる
  • 2Dゲームの制作に特化した作業方式が追加されてる
  • Android特有の不具合が色々解消されてる
  • モジュールマネージャの追加によってUnityEditorのversionupをしなくても、AndroidiOSなどの分離されたモジュールだけのfeatureをアップグレードする事が出来そう
    • Unityのversionupって運用中のタイトルだとAssetBundle(AB)の再生成が必須で今のゲームのメンテ入り確定なので少し助かる
      • サーバーに2種類のversionのABを置いてversion毎にLoadする仕組みさえ有ればメンテ要らないかもだけど...