• かんたんライフゲージ
  • スマホにビルドするとGUIがちっちゃくなる問題
  • クールダウン付アイコンの制御
  • ボタンとスクリプトの連携
  • テクスチャをボタンに貼る
  • ボタンの名前を変更する

  • かんたんライフゲージ

UI→SliderでCanvas配下に初期ゲージが表示される。
プロパティのDirectionでLeft To Rightが初期状態なのをBottom To Topにすると縦ゲージ
 
後はBackground(背景)を半透明ぎみに、Fill Areaを黄色、Handle Slide Areaをオレンジにするとそれっぽくなる。
チャージ量やライフゲージはValueのところで%指定にするか(やった)、Min ValueとMax Valueで定数にするか?(こっちはやったことない)

 

  • スマホにビルドするとGUIがちっちゃくなる問題

標準の設定ではスマホに持っていくとGUIがちっちゃくなっちゃうので、設定を変える。
CanvasのCanvas Scaler→Ui Scale Modeを
Constant Pixel SizeからScale With Screen Sizeに変更する


 

  • クールダウン付アイコンの制御


下地に白黒バージョンを置いて、上にカラーバージョンを置く。カラーバージョンUI.Imageのfillをいじるかんじ。

var B1 : UI.Image;
B1 = GameObject.Find("Canvas/Attack1").GetComponent(UI.Image);
B1.fillAmount = 0.5f;←これで50%チャージ状態

ディアブロ系クールダウンアイコン設定
[Image Type]Filled
[Fill Method]Radial 360
[Fill Irigin]Top

クールダウン管理機能
function fillGet(Img : UI.Image){
    return Img.fillAmount;
}
function fillZero(Img : UI.Image){
    Img.fillAmount = 0.0f;
}
function fillRate(Img : UI.Image, rate : float){
    Img.fillAmount += rate;
    if(Img.fillAmount >= 1.0f) Img.fillAmount = 1.0f;
}
んで、ボタン押したか判定の中で
function Button1() {
    if(fillGet(B1) == 1.0f){
        fillZero(B1);←ボタン押したらゼロにする
        PlAni.SetBool("a1", true);
    }
}
あとはOnGUIあたりで
    fillRate(B1, 0.02f);
しとけば勝手に増える。
増加レート指定じゃなくて最大フレーム指定のほうが使いやすいかな?(遅延効果発動みたいな)

使用可能状態(fill=1.0)になったら光るエフェクトとか必要かもね。

 

  • ボタンとスクリプトの連携

Canvas > 押したいボタンのOn Click()に+で設定追加する
スクリプトが入っているオブジェクト指定(管理用オブジェクトなど)に押された時のプログラムを書く

private function Button1() {
    print("Button1");
}
On Click()で増えたオプションのNo Functionになってるのをスクリプトが入っているGameObject→スクリプト名に変更

**古い方法**
On Click()で増えたオプションのNo FunctionになってるのをGameObject→SendMessage(string)に変更
・ボタンが押された時に反応するスクリプト名を表記[Button1]

 

  • テクスチャをボタンに貼る

・テクスチャのInspectorで見た時に[Texture Type]が[Texture]だと使えないので、
[Sprite(2D and UI)]に変更してボタンの[Image(Script)]→[Source Image]に放り込む

・[Sprite(2D and UI)]に変更する

・[Source Image]にぶっこむ

 

  • ボタンの名前を変更する

・Canvas > (作成したボタン) > Text内の[Text]値を変更する

最終更新:2016年02月24日 17:14