【技術雑談】Unity5.3リリース

お疲れ様です、プログラム担当の藤岡です

世間では Advent Calendar の季節ですね

参考になるものや面白いものまで、

非常に楽しく見て回っています

僕も何かやりたいと思っているんですけどね…

今はアカとブルーの開発が忙しいのでなかなか…

そういえば!

先日 Unity5.3 が正式リリースされましたね

Unity5.2からの更新内容については、

公式含め色んな方がまとめているので割愛するとして…

では実際に更新すると、

既存プロジェクトにどんな影響が出るのか?

今回は自分が実際に試してみて、

わかったことをご紹介していきたいと思います!

① なぜかiOSの入力精度が上がった(謎)

アカとブルーでは、

Input.touches[0].position の差分で

指の移動を検知しているのですが、

2フレームに1度、

同じ座標が送られてきて移動がガタつくことがありました

 

Unity5.2 まで私 のiPhone5/iOS9.1(※) と、

iPodTouch6G/iOS9.1 において、

その現象を確認しています

※iOS8.3だとUnityアプリはXcodeでのチェックが出来ず、
  アップデートを強いられるハメに・・・

iPadMiniRetina/iOS8.2 では、

この現象は確認できなかったので、

画面サイズなのか?

はたまた

Unity が iOS9 に対応していなかったのか?

実際のところわかりませんが…

いずれにせよ、

iPhone と iPodTouch でしか発生していない現象でしたので

こちら側で如何ともし難いところではありました

それがなんと!

Unity5.3 で完全に解消されてました!

3DTouch 対応の為に、

Input 周りがいじられたと考えられますので

副次的に改善したのかもしれませんが、

iPhone 環境下での操作性が劇的に改善され、

僕は喜び勇んでいたのです!

がっ!

喜び勇んでいたのも束の間、

ここで別の問題が浮上するのです…

② uGUIのTextでdynamic font以外は座標がズレる

Twitter で検索したところ、

海外の方にも同様の現象が発生しているようでして、

bitmap font が上にズレます

キャプチャ

全部ズレる

助けてください

仕方が無いので、

フォントをアトラスかした場合に正しく表示されるかどうか…

休日にでも検証してみようとは思ってますが、

フォントというか…

uGUIのTextの問題のような気がしてならないので、

対応できるかどうか・・・

Dynamic Font は今までどおり問題ないですが、

uGUI を酷使してるプロジェクトで、

上記のような現象が発生した場合は、

Unity5.3 への更新は見送った方が良い気がしてます

(パッチー!はやくきてくれー!)

 

③tvOS の BuildSettings はあるが PlayerSettings がない

Define Symbol をスクリプト側から一律設定してはいるのですが、


private void SetDefineSymbols(string symbol) {

foreach (BuildTargetGroup target in Enum.GetValues(typeof(BuildTargetGroup))) {

if (target == BuildTargetGroup.Unknown)

continue;

if (target == BuildTargetGroup.tvOS)

continue;

PlayerSettings.SetScriptingDefineSymbolsForGroup(target, symbol);

}

}

tvOS はPlayerSettings がないので設定しようとすると

怒られます

④SceneManager 実装によって ActiveScene のID取得が変わった

新しい namespace ができましたね

UnityEngine.SceneManagement.SceneManager

僕のところでは、

Scene は文字列でなく、

全て『定数』で管理しているので、

今まで Application.loadedLevel で

現在のシーンNoをとっていたところを、

SceneManager.GetActiveScene().buildIndex

に変更する必要がありました

しかしながら、

僕は namespace の using 宣言は極力減らしたい派なので、

一回しか使わないようなものは

namespace をしっかり書くのですが・・・

UnityEngine.SceneManagement.SceneManager.GetActiveScene().buildIndex

…うん…冗長…

その他、

Application.LoadLevel とかも、

SceneManager.LoadScene に修正しました

この辺は記述を変更するだけですね

ということで、

今のところ、

僕が実際に試してみて確認できた影響は上記4点となります

入力が直ったことは本当に嬉しかったですし、

ParticleSystem のローカルスケールも対応したらしいので、

uGUI の Text をカカッとパッチで対応してくれれば

もう言うことありませんね!(切実

次回は何を話そうか…

何か書きます!

おたのしみに!

 

 

2011/12/11/19:11 追記

AndroidでSpriteRendererのBatchingが5.2に比べて異常に重くなってる・・・?

2015/12/11 + フジオカ