読者です 読者をやめる 読者になる 読者になる

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

UISpriteの色変え、UIButtonの処理分け、ScrollViewの位置設定【Unity】【NGUI】


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

NGUI関連で記事のするほどじゃないけど、まとめておきたいモノを複数列挙する感じの記事です。
Tipsみたいなものなのでそれぞれに関係はありません。

UISpriteの色変え

//SpriteがUISprite(Script)
Sprite.color = new Color(r, g, b, alpha); 


Inspectorでいうところの、UISprite(Script)のWidgetでColorを設定するのと同じはず。

f:id:kan_kikuchi:20140510092754p:plain


UIButtonの処理分け

同じ関数で、押されたボタン毎に処理を変えたい時があると思います。
そう言うときは、以下のようにしてボタンの名前を取得し処理を変えられます。

//OnTapが押された時に呼ばれる関数
public void OnTap ()
    {
        Debug.Log (UIButton.current.name);
        //例えばボタンと同じ名前のシーンに移動するとか
        Application.LoadLevel(UIButton.current.name);
    }

参考:NGUI UIButton Unity - 万年素人からGeekへの道


ScrollViewの位置設定

ScrollViewの位置をスクリプトから設定したい場合は以下のようにすれば出来るようです。

//スクロールビューを動かす
Vector3 SetPos = ScrollView.transform.position;
SetPos.x = 100;
ScrollView.transform.position = SetPos;

//OffSetも動かした分と同じだけ逆に設定する
UIPanel ScrollPanel = ScrollView.GetComponent<UIPanel>();
ScrollPanel.clipOffset = new Vector2(-SetPos.x, 0);


positionだけ動かすと、スクロール出来る限界にズレが生じるのでclipOffsetでClippingのOffsetを移動させています。
Inspectorでいうところの、TransformのPositionを変更したのち、UIPanel(Script)のClippingでOffsetを設定するのと同じはず。

f:id:kan_kikuchi:20140622204100p:plain