West Hill 開発メモ

iOS7がリリースされて大きく変わった事もあり、
OSのバージョンを判別して挙動を分けたい場合があると思います。

Unityで作ったiOSアプリでOSのバージョンを取得するにはSystemInfo.operatingSystemを使用します。

public static float GetiOSVersion()
{
#if UNITY_IPHONE && !UNITY_EDITOR
	string versionString = SystemInfo.operatingSystem.Replace( "iPhone OS ", "" );
	
	float version = -1f;
	
	float.TryParse( versionString.Substring(0, 1), out version );
	
	return version;
#else
	return -1f;
#endif
}

iOS上でSystemInfo.operatingSystemを呼ぶと「iPhone OS 6.1.1 」の様な形式で取得できるので、5, 6, 7等のメジャーバージョンだけ返すように整形しています。

このエントリーをはてなブックマークに追加 Clip to Evernote

NGUIを使用してスクロールリストの実装をする際にはDraggablePanelを使うことが多いと思いますが、設定によっては一部のAndroid端末で表示がおかしくなることがあります。

ドラゴンツイートではタイムラインの表示にDraggablePanelを使用していたので、
一部端末で以下のような表示になってしまいました。
※現象を確認できた端末はXperia acro HD(IS12S)、Xperia NX(SO-02D)等。

環境はUnity4.2.0、NGUIのバージョンは2.6.4です。
ngui_list_01 
DraggablePanel以下のAtlasテクスチャが真っ黒になってしまっています。 

原因はPanelのClippingの設定が「Alpha Clip」になっていたからでした。
ngui_list_03
赤枠のところの設定を「Soft Clip」にすることで、解消します。
Soft Clipだとスクロールの端の方がぼやけるのですが、Softnessのパラメタを1にすれば気にならなくなります。 
ngui_list_02 
無事表示されました。 

ちなみに「Hard Clip」は古いGPUドライバの端末でサポートされていないので推奨されていません。
http://d.hatena.ne.jp/shinriyo/20130501/p2

開発中の動作確認に使用していたGalaxyNexusでは「Alpha Clip」でも問題なかったので
レビューで指摘されるまで気づかなかったのですが、やはり色々な端末で検証する事は大事ですね。

このエントリーをはてなブックマークに追加 Clip to Evernote

Unityで作ったプロジェクトをiOSやAndroid向けにビルドする際に、
アイコンの下に表示されるアプリ名を言語別に変更(ローカライズ)する方法です。

↓のように英語の場合と日本語の場合で分けたいとき 
localize_01
iOSの場合は、Xcodeプロジェクトができた後に、InfoPlist.stringを追加する以下の方法で出来ます。
be-style [Unity] iOSアプリ名のローカライズ
http://blog.be-style.jpn.com/article/57050228.html 

Androidの場合は、Unityプロジェクトビューのルート(フォルダ構成で言うとAssets直下)に、「Plugins/Android/res」フォルダを作って、
その配下に日本語なら「values-ja」 フォルダを作ってstring.xmlファイルを配置します。

string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">日本語アプリ名</string>
</resources>

日本語アプリ名の箇所に好きな名前を入れる事で、端末の言語設定が日本語の場合に表示される名前を変えられます。

ちなみに、ローカライズファイルを用意していない言語の場合は、
Unityの「Edit→ProjectSettings→Player」内の「Product Name」に設定したデフォルト名が表示されます。 
localize_02

このエントリーをはてなブックマークに追加 Clip to Evernote

このページのトップヘ