上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
tht20141028.png
選択シーン完成

uGUI(unity4.6beta20)のボタン
InputでいうGetKeyDown()みたいなのが無かった(見つからなかった?)から実装した

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

namespace Shiso{
public class ButtonMgr : MonoBehaviour {
static ButtonMgr m_Instance;
public static ButtonMgr Instance
{
get
{
if(m_Instance == null)
{
m_Instance = FindObjectOfType();
if(m_Instance==null)
{
GameObject obj = Instantiate(Resources.Load("Shiso/ButtonMgr")) as GameObject;
m_Instance = obj.GetComponent();
}
}
return m_Instance;
}
}

public class Element
{
public Element(Button btn){this.btn=btn;}
public Button btn;
public bool clicked = false;
}
List m_Buttons = new List();

void LateUpdate()
{
m_Buttons.ForEach (delegate(Element obj) {
obj.clicked = false;
});
}

public bool Clicked(Button btn)
{
Element r = m_Buttons.Find (delegate(Element obj) {return btn==obj.btn;});
if (null != r)
return r.clicked;
else
Add (btn);
return false;
}

void Add(Button btn)
{
if(null == btn)
return;
Element r = m_Buttons.Find (delegate(Element obj) {return btn==obj.btn;});
if (null != r)
return;

UnityEngine.Events.UnityAction action = () => {ClickEvent(btn);};
btn.onClick.AddListener(action);
Element element = new Element (btn);
m_Buttons.Add (element);
}

void ClickEvent(Button btn)
{
Element r = m_Buttons.Find (delegate(Element obj) {return btn==obj.btn;});
if (null != r)
r.clicked = true;
}
}
}
//----------------------------------------------------------------------

シングルトンの規定クラス作れってツッコミは無しで!

準備
ButtonMgrを付けたゲームオブジェクトをプレハブ化してInstantiateできるようにしておく
呼び出し
if(Shiso.ButtonMgr.Instance.Clicked(button))
{
hogehoge;
}

//
uGUI配置したシーンが開けなくなるバグの解決方募集!(unity4.6beta20)
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://perillasoft.blog75.fc2.com/tb.php/55-47e94f5e
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。