1 Panelを別に用意する
NGUIメニューのAddPanelで追加できます。
2 1にUIPanelのclippingを設定する
SoftClipにしてsizeを設定
ここが、ドラッグさせるアイテムを表示できる大きさの限界を指定するところ。
ここで指定した大きさの窓からアイテムをのぞく感じになるイメージ。
3 UIPanelにUIDraggablePanelスクリプトをつける
scaleにはドラッグさせる方向を設定する。
横のみなら x=1 y=0 z=0
4 ドラッグさせるアイテムをつける
ここではアイテムを等間隔で配置するため、UIGridを作成します。
子要素に、UIGridをつけwidthとHeightを設定する。
UIDragPanelContentスクリプトをつける。
5 UIGridにアイテムを子要素で設定する
すべてにUIDragPanelContentスクリプトをつける。
プレイボタンを押すと等間隔で配置されます。
***問題***
1 スクロール実現方法
NGUIでのスクロールには2つの方法があります。(もうひとつはカメラを別に用意する方法)
こちらのほうが直感的なのでメインに利用しています。
Androidで利用する場合のハマるポイントとして、OpenGL2.0でないと正しく表示されません。
そこで、PlayerSettings→Other settings→Graphic levelでOpenGL2.0を選びましょう。
2012年7月29日日曜日
NGUIの多言語対応でコードからテキストを変更するには
以下、UILabelにUILocalizeをつけているものとする。
まずはキーを変更
uiLocalize.key="newTextKey";
これだけではテキストは変化しません。NGUIのローカライズは、OnEnabledで行われるからです。
そこで、自力でテキストの値をローカライズして取得する処理を書き足します。
uiLabel.text = Localization.Get( newTextKey );
まずはキーを変更
uiLocalize.key="newTextKey";
これだけではテキストは変化しません。NGUIのローカライズは、OnEnabledで行われるからです。
そこで、自力でテキストの値をローカライズして取得する処理を書き足します。
uiLabel.text = Localization.Get( newTextKey );
NGUIでUNITY3Dの多言語対応を実現する
1 Localizationフォルダを作成 その中にテキストファイルを入れる
キー=値のペアで改行する
tittle=たいとる
sub=さぶたいとる
対応する言語分のテキストを用意して名前をつける
English.txt
Japanese.txt
2 Localizationのプレハブをシーンにコピペ
NGUI→Example→Otherにある
3 UILabelのついたオブジェクトにUILocalizeスクリプトをつける
UILocalizeコンポーネントの
Keyプロパティに1の言語テキスト名をつける(ここではEnglish or Japanese)
言語の切り替えは、Localizationコンポーネントの値をいじって行う。
これはまた今度
2012年7月26日木曜日
Unityでメニューをアニメーションさせるには
アニメーションを呼び出場合。
例:メニューパネルをサイドからシュッと出すとき
public GameObject Panel;//animationコンポーネントをつけたパネル
呼び出すとき
Panel.animation["PanelAnimation"].speed=1.0f;
Panel.animation["PanelAnimation"].time=Panel.animation["PanelAnimation"].length;
Panel.animation.Play("PanelAnimation");
アニメーションを逆転させるにはspeedを反転します
Panel.animation["PanelAnimation"].speed=-1.0f;
2012年7月14日土曜日
2012年7月12日木曜日
UnityAndroidで端末の言語設定を取得する
Application.systemLanguage
戻り値は以下のページにリストあり
http://docs.unity3d.com/Documentation/ScriptReference/SystemLanguage.html
NGUIでは、こんなかんじ
if(Application.systemLanguage.ToString()=="Japanese"){
//ローカライズの現在の言語を変更する
Localization.instance.currentLanguage="Japanese";
}
IPhoneではバグがあるみたいで、報告済みとのこと。
Unityフォーラムからの情報。
戻り値は以下のページにリストあり
http://docs.unity3d.com/Documentation/ScriptReference/SystemLanguage.html
NGUIでは、こんなかんじ
if(Application.systemLanguage.ToString()=="Japanese"){
//ローカライズの現在の言語を変更する
Localization.instance.currentLanguage="Japanese";
}
IPhoneではバグがあるみたいで、報告済みとのこと。
Unityフォーラムからの情報。
登録:
投稿 (Atom)