uGUI Tips

このページはVersion 5.6.1f1 Personalを対象としています。

更新履歴

参考URL

概要

このページではuGUTのTipsをまとめています。

ボタン enabled・setActive・interactiveの比較

コード選択見た目
button.enabled=true/false;不可変化なし
button.interactive=true/false;不可isabledステータス
gameobject.setActive(true/false);不可不可視

ボタン スクリプトでボタンにクリックイベントを追加する

button.onClick.AddListener(() => onClickButton(n));

void onClickButton(int index){
   Debug.Log(index.ToString());
}

ボタン スクリプトでボタンのナヴィゲーションを設定する

//button1のNavigationの上下をbutton0, button2にする。
Navigation navi = button1.navigation;
navi.selectOnUp = button0;
navi.selectOnDown = button2;
button1.navigation = navi;

ボタン スクリプトでボタンにフォーカスを移す

button.Select();

ボタン スクリプトでボタンからフォーカスを外す

EventSystem.current.SetSelectedGameObject(null);

ボタン スクリプトでボタンにフォーカスがあるか調べる

void Update()
{
    GameObject goSelected = EventSystem.current.currentSelectedGameObject;
    if (goSelected == gameObject)
    {
        Debug.Log("onFocus");
    }
{

ボタン ラジオボタン

テキスト ダメージポップアップ

攻撃や回復を受けたとき表示される、ダメージポップアップのこと。

ポップアップするテキストにアタッチするスクリプト。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PopupController : MonoBehaviour {
    //private
    Text text;
    float time = 0.0f;

    // Use this for initialization
    void Start () {
        text = GetComponent<Text>();
    }
    
    // Update is called once per frame
    void Update () {
        time += Time.deltaTime;
        transform.Translate(Vector3.up * Time.deltaTime * 16.0f);
        text.color = new Color(text.color.r, text.color.g, text.color.b, 1.0f - time);
        if (time > 1.0f)
            Destroy(gameObject);
    }
}

ポップアップを管理するクラス。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class cPopup
{
    //public field
    public enum eColor
    {
        Damage,
        Heal
    }

    //private field
    GameObject popupPrefab;
    Canvas canvas;

    //public method
    public void Start(Transform _transform)
    {
        popupPrefab = (GameObject)Resources.Load("prefab/PopupPrefab");
        canvas = _transform.GetComponent<Canvas>();
    }
    public void Update()
    {

    }
    public void ShowPopup(Vector3 position, int value, eColor color)
    {
        GameObject go = GameObject.Instantiate(popupPrefab);
        go.transform.SetParent(canvas.transform);
        go.transform.position = RectTransformUtility.WorldToScreenPoint(Camera.main, position);
        go.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f);//スケールを正しくする
        go.GetComponent<Text>().text = value.ToString();
        switch (color)
        {
            case eColor.Damage:
                go.GetComponent<Text>().color = new Color(1.0f, 0.0f, 0.0f, 1.0f);
                break;
            case eColor.Heal:
                go.GetComponent<Text>().color = new Color(0.0f, 0.0f, 1.0f, 1.0f);
                break;
        }
    }

    //private method
}

戻る

inserted by FC2 system