菜单

NGUI基础之button(按钮)

2018年12月16日 - Bootstrap

btn基础按钮              btn-success 成功按钮    btn-danger 危险按钮

1,button的创;2,button组件的主导特性;3,button的风波监听

btn-default 默认按钮  btn-info      音信按钮    btn-link      链接按钮

原位地址:http://blog.csdn.net/dingkun520wy/article/details/50434520

btn-primary 紧要按钮 btn-warning 警告按钮

<button type=”button”>基础仍钮.btn</button> 
   <button type=”button”>默认按钮.btn-default</button>
   <button type=”button”>重要按钮.btn-primary</button>
   <button type=”button”>成功照钮.btn-success</button>
   <button type=”button”>音讯以钮.btn-info</button>
   <button type=”button”>警告按钮.btn-warning</button>
   <button type=”button”>危险按钮.btn-danger</button>
   <button type=”button”>链接以钮.btn-link</button>

1,button的创建


编辑器创设

图片 1

代码创设

 

/// <summary>
    /// 动态加载一个NGUI按钮
    /// </summary>
    /// <param name="panleMe">父节点对象</param>
    /// <param name="atlas">用到的图集</param>
    /// <param name="sriteName">图片的名字</param>
    private void CreateServerButton(GameObject panleMe, UIAtlas atlas, string sriteName)
    {
        //获得深度(要创建button的Panle的深度)
        int depth = NGUITools.CalculateNextDepth(panleMe);
        //创建button物体,命名、设tag、摆所在panle的相对位置。
        GameObject go = NGUITools.AddChild(panleMe);
        //添加button的背景图片UISprite
        UISprite bg = NGUITools.AddWidget<UISprite>(go);
        bg.type = UISprite.Type.Sliced;
        bg.depth = depth;
        //背景图片使用的图集
        bg.atlas = atlas;
        //图集中使用的精灵名字
        bg.spriteName = sriteName;
        //跳转位置(必要)
        bg.MakePixelPerfect();

        //添加碰撞(有碰撞才能接收鼠标/触摸),大小与Button背景一致
        BoxCollider box = NGUITools.AddWidgetCollider(go);
        box.center = new Vector3(0, 0, -1);
        box.size = new Vector3(bg.localSize.x, bg.localSize.y, 0);

        //添加UIButton触发事件的必要组件,并关联之前生成的UISprite
        UIButton bt = go.AddComponent<UIButton>();
        bt.tweenTarget = bg.gameObject;

    }

 

2,button组件的主干属性

按钮用到的UI可口可乐

图片 2

按钮的应范围

图片 3

UIButton的属性

图片 4

3,button的风波监听

直监听事件

把下脚本直接绑定以按钮上,当按钮点击时尽管足以监听到,这种措施无极端好大不灵便。

 

void OnClick()
{
 Debug.Log("Button is Click!!!");
}

 

 

使用SendMessage

挑选按钮后,在Unity导航菜单栏中摘Component->Interaction->Button
Message 组件。

Target:接收按钮音信的游艺对象。

Function
Name:接收按钮音信之办法,拥有这法的脚本必须绑定在下边Target对象身上。

Trigger:触发的风波,OnClick显明是如出一辙糟糕点击。

Include Children :是否受该对象的所有子对象啊发送这多少个点击事件。

使用UIListener

以此也是引进我们利用的一致种植艺术,选用按钮后每当Unity导航菜单栏中甄选Component->NGUI->Internal
->伊夫(Eve)nt Listener 。 挂于按钮上便好,它从未外参数。。

当另外一个本子或者类吃即可得到按钮的点击事件、把之类代码放在任意类中要脚本中。

 

void Awake()
{
                //获取需要监听的按钮对象
GameObject button= GameObject.Find("UI Root (2D)/Camera/Anchor/Panel/LoadUI/MainCommon/Button");
                //设置这个按钮的监听,指向本类的ButtonClick方法中。
UIEventListener.Get(button).onClick= ButtonClick;
}

        //计算按钮的点击事件
void ButtonClick(GameObjectbutton)
{
Debug.Log("GameObject "+ button.name);

}

 

复多操作类型

 

publicclass UIEventListener: MonoBehaviour
{
publicdelegate voidVoidDelegate (GameObjectgo);
publicdelegate voidBoolDelegate (GameObjectgo,bool state);
publicdelegate voidFloatDelegate (GameObject go,float delta);
publicdelegate voidVectorDelegate (GameObject go,Vector2 delta);
publicdelegate voidStringDelegate (GameObject go,string text);
publicdelegate voidObjectDelegate (GameObject go,GameObject draggedObject);
publicdelegate voidKeyCodeDelegate (GameObject go,KeyCode key);

publicobject parameter;

publicVoidDelegate onSubmit;
publicVoidDelegate onClick;
publicVoidDelegate onDoubleClick;
publicBoolDelegate onHover;
publicBoolDelegate onPress;
publicBoolDelegate onSelect;
publicFloatDelegate onScroll;
publicVectorDelegate onDrag;
publicObjectDelegate onDrop;
publicStringDelegate onInput;
publicKeyCodeDelegate onKey;

voidOnSubmit (){ if(onSubmit!= null)onSubmit(gameObject);}
voidOnClick (){ if(onClick!= null)onClick(gameObject);}
voidOnDoubleClick (){ if(onDoubleClick!= null)onDoubleClick(gameObject);}
voidOnHover (boolisOver){ if(onHover!= null)onHover(gameObject,isOver);}
voidOnPress (boolisPressed){ if(onPress!= null)onPress(gameObject,isPressed);}
voidOnSelect (boolselected){ if(onSelect!= null)onSelect(gameObject,selected);}
voidOnScroll (floatdelta){ if(onScroll!= null)onScroll(gameObject,delta);}
voidOnDrag (Vector2delta){ if(onDrag!= null)onDrag(gameObject,delta);}
voidOnDrop (GameObjectgo){ if(onDrop!= null)onDrop(gameObject,go);}
voidOnInput (stringtext){ if(onInput!= null)onInput(gameObject,text);}
voidOnKey (KeyCodekey){ if(onKey!= null)onKey(gameObject,key);}

/// <summary>
/// Get or add an event listener to the specified game object.
/// </summary>

staticpublic UIEventListenerGet (GameObjectgo)
{
UIEventListenerlistener =go.GetComponent<UIEventListener>();
if(listener== null)listener =go.AddComponent<UIEventListener>();
returnlistener;
}
}

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图