devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

NGUIでボタンを作成した時、ボタンがクリックされた時に実行されるメソッドはInspectorパネルで設定することができる(UIButtonコンポーネントのOnClickの所にドラッグ&ドロップしてメソッドを選択)。

スクリーンショット 2014-01-08 14.57.36

スクリプトからメソッドを設定するには、以下のようになる。

EventDelegate.Add()だと既存のDelegateリストへ追加され、EventDelegate.Set()だと既存のDelegateリストが置き換えられる。

TweenAlphaのコンポーネントを追加せず、スクリプトからTwennAlpha.BeginでTweenをおこなうサンプル。
Tweenが終了した時に、コールバック関数が実行されるようにEventDelegateを設定する。

※ NGUI 3.0.7f3使用

実行結果

Build Settingsでプラットフォームを切り替えた時に処理を行うサンプル。

Build Settingでプラットフォームを切り替えるとConsoleに以下のように表示されます。

スクリーンショット 2013-12-07 15.21.08

以下のページを参考にしました。
Example Platform Monitoring script : https://gist.github.com/bzgeb/6216118

プレハブに変換すると、孫オブジェクト以下の階層をProjectウィンドウで見ることが出来ない。

プレハブにしてみた

以下は、Hierarchyウィンドウの一部です。

スクリーンショット 2013-12-02 22.20.39

HierarchyウィンドウのToggleFloorをProjectウィンドウへドラッグ&ドロップしてプレハブを作成します。

スクリーンショット 2013-12-02 22.25.22

Projectウィンドウにプレハブ(ToggleFloor)が作成されます。しかし、プレハブの横の三角形をクリックして階層を開いても元の階層の孫オブジェクト(Checkmark)が見当たりません。ToggleFloorの中にはTouchCircleとBackgroundしかないように見えます。

続きを読む

Application.targetFrameRateプロパティを60に設定したiOS向けアプリ。起動直後は何の問題もなく動いてたのに、しばらくするとフレームレートが不安定になる。NGUIのTweenアニメーションもカクカクしだした。処理自体は軽いのでフレームレートが落ちることは考えにくい状況。

XcodeのDebugNavigatorに表示されているFPSは60fpsと表示されているが、棒グラフは微妙にガタガタの状態。iOS6の端末ではフレームレートは安定しているのに、iOS7の端末ではフレームレートが不安定。

スクリーンショット 2013-11-30 0.18.33

原因:

iOS7の端末のアクセシビリティの設定が影響していたようです。

ホームボタンの機能をソフト的に実現するAssistiveTouchをオフにしたらフレームレートが60fpsで安定し、アニメーションがカクカクすることは無くなりました。

プラットフォームがiOSの場合、デフォルトで30fps。アプリのフレーム処理に余裕があるなら、60に設定することでなめらかな動きになる。

重ね合わせが必要なスプライトに同じDepth値を設定すると、重なり方が不定となる。

spriteDepth

オーサリング時、思った通りの重なり順でスプライトが表示されていたのでDepth値を自分で設定しなかった。Game画面のプレビューでも問題なかった。しかし、シーンを保存して後で開いた時にはスプライトの重なり順が変わっていた。

重ね合わせが必要なスプライトはDepth値を設定すること。また、スプライトの表示がおかしくなった時には、Depthがきちんと設定されているか確認する。

「NGUI始めました」

Unityを使い始めた頃からNGUIのことは気になっていたのですが、有料Assetということで導入をためらっていました。アプリを作る上でGUI周りを実装することの大変さが、最近になって益々身にしみて分かってきたので、60%OFFのセールにあわせて購入しました。Unityへの新GUI搭載が近づいている今、購入するタイミングとしては微妙な気もしましたが・・・^^;

スクリーンショット 2013-10-26 19.22.16

まずは、意外と面倒な文字(漢字や平仮名を含む)表示周りについて試してみました。

続きを読む