unity3d gui.button怎样更改button的imag

36718人阅读
Unity(37)
NGUI(10)
写在前面: &&&
&&& 本文将创建一个基本的Button。并且编写脚本,响应点击事件。
&&& 欢迎大家纠错、拍砖!原创很辛苦,如有转载,请注明出处。
Button -- 按钮
&&& 在NGUI 3.5 里,Button这个控件,经过了整理。比如更改了创建方式(搜索、拖拽);比如合并了 2.x里的Button和Image Button。个人觉得这样是合理的,wxPython的Button,就不分基本按钮,还是图片按钮,只是创建时候的参数不同而已(重载)。
1,创建 Widget
&&& 如果已经创建过Widget(或者存在UI Root 和Camera),请忽略此步骤。直接跳到步骤2。否则执行以下步骤:
&&& 确保你的项目里已经导入了NGUI(如有不明,请看我写的《NGUI 3.5教程(一)》)。或者新建一个空白项目,然后导入NGUI。
&&& 为了显示label,我们需要新建一个Widget。也就是所谓的小工具。在菜单上点击【NGUI】--&【Create】--&【Widget】。
&&& 之后,Hierarchy面板上,会自动建立出 UI Root,包括(Camera 、Container)。
2,创建 Button
&&& 在NGUI 3.5中,创建Button比较特殊,可以通过【搜索】,然后【拖拽】实现。具体为:
&&& (1)在Project面板中,搜索“Control”,也就是搜索控件。之后,会发现NGUI的一堆控件。
&&& (2)找到 Simple Button,拖拽到层级面板下面。我这里把它拖拽到Container下面了。
&&& 在检视面板中,可以看到,Simple Button默认有4个组件:
&&& Transform 作为Unity最基本的组件,这里不再做解释。
&&& UIScript (Script) 是NGUI默认挂载在Button上的脚本,主要是指定图集(Atlas)、深度等操作。
&&& UIButton(Script) 是NGUI默认挂载在Button上的脚本,主要是指定按钮状态的,比如普通(Normal)、悬停(也称徘徊、经过,Hover)、按下(Pressed)、禁用(Disabled)。
&&& Box Collider 是默认挂在按钮上的一个盒碰撞器。其作用是使Button控件具有碰撞属性。NGUI中事件的触发都需要对象具有碰撞属性。
&& (3)通过Label的Text属性,可以给简单的按钮改文字。这里我给改成 Button-1。
3,编写脚本,处理 Button 点击事件
&&& 在Project面板中,新建一个Scripts 文件夹,然后右键--&【Create】--&【C# Script】,创建一个C# 脚本。取名为TestButton.cs:
using UnityE
using System.C
public class TestButton : MonoBehaviour {
// Use this for initialization
void Start () {
void OnClick () {
Debug.Log(&OK! Get the click!&);
保存脚本,然后把这个脚本拖拽到层级面板的 Control - Simple Button上,之后,运行:
好,点击按钮会,会发现打印信息!按钮点击事件成功响应!
ps. 按钮显灰(按钮disable)设置:
this.GetComponent&UIButton& ().isEnabled =
执行后,会自动调用disable状态时的颜色(比如默认的浅灰色),并禁用按钮。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1877374次
积分:12496
积分:12496
排名:第845名
原创:155篇
评论:310条
(1)(1)(1)(1)(3)(3)(1)(4)(2)(3)(2)(3)(1)(3)(1)(4)(1)(4)(3)(3)(4)(7)(4)(5)(2)(6)(2)(2)(5)(2)(7)(12)(1)(2)(3)(2)(1)(1)(8)(3)(9)(2)(3)(1)(2)(3)(4)(4)(2)(4)(2)(2)(3)扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
_____________________________________________________________________________________________________________
问答求助版块规则:
  1、问题尽量描述清楚
& && &2、代码要放在代码块里
& && &3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
& && &4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
& && &5、问题得到解决,请选择最佳答案。
& && &6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 1037|回复: 14
該如何用程式改button的image (Unity C#)
3154/300排名<font color="#FF昨日变化2主题帖子积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
在线时间43 小时
想做一款卡牌遊戲
發牌後,想把被發到的卡牌的圖片顯示在按鈕上
可是透過下列各種方法測試,都無法測試成功
程式碼編譯上也沒有問題
不知道是哪裡出了錯誤,請各位幫忙解惑
public Button Button1;
1-//Button1.image= Image.(&C:\\card\\P004.png&);
2-//Button1.image = Image.FromFile(&C:\\card\\P004.png&);
3-//Button1.GetComponent&Button&().image = Resources.Load&Image&(&C:\\card\\P004.png&);
4-//Button1.GetComponent&Image&() = Resources.Load&Image&(&C:\\cardP004.jpg&);
每日推荐:
3209/300排名<font color="#FF昨日变化2主题帖子积分
偶尔光临, 积分 209, 距离下一级还需 91 积分
偶尔光临, 积分 209, 距离下一级还需 91 积分
在线时间89 小时
1.新建一个Resourses文件夹,图片资源放这里
2.把图片类型改为sprite
3.Button1.image.sprite=Resources.Load&Sprite&(资源路径);//(这个确实可以的)
每日推荐:
5596/1000排名<font color="#FF昨日变化主题帖子积分
熟悉之中, 积分 596, 距离下一级还需 404 积分
熟悉之中, 积分 596, 距离下一级还需 404 积分
蛮牛币1212
在线时间275 小时
Button1.image.sprite=Resources.Load&Sprite&(资源路径);
每日推荐:
5908/1000排名<font color="#FF昨日变化主题帖子积分
熟悉之中, 积分 908, 距离下一级还需 92 积分
熟悉之中, 积分 908, 距离下一级还需 92 积分
蛮牛币2525
在线时间322 小时
获取了那个按钮了吗
每日推荐:
3154/300排名<font color="#FF昨日变化2主题帖子积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
在线时间43 小时
1.新建一个Resourses文件夹,图片资源放这里
2.把图片类型改为sprite
3.Button1.image.sprite=Resources.Lo ...
謝謝你的幫助^^
但我測試後出現了&&
NullReferenceException : Object reference not set to an instance of an object 我該怎麼處理?& &
請問卡牌遊戲的話 程式碼我該用至哪個物件上 還是一個button物件也可以?
每日推荐:
3154/300排名<font color="#FF昨日变化2主题帖子积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
在线时间43 小时
获取了那个按钮了吗
謝謝你的關注^^ 請問要怎麼驗證已經獲取那個按鈕了?
每日推荐:
3154/300排名<font color="#FF昨日变化2主题帖子积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
在线时间43 小时
Button1.image.sprite=Resources.Load(资源路径);
謝謝你的幫助^^ 請問路徑有特定的格式嗎? 還是我寫的路徑即可??
每日推荐:
5971/1000排名<font color="#FF昨日变化1主题帖子积分
熟悉之中, 积分 971, 距离下一级还需 29 积分
熟悉之中, 积分 971, 距离下一级还需 29 积分
在线时间223 小时
image不能直接调用吧&&image.sprite
每日推荐:
3154/300排名<font color="#FF昨日变化2主题帖子积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
在线时间43 小时
来自Mobile---
image不能直接调用吧&&image.sprite
謝謝你的幫助^^ Button有需要更改的嗎 還是資源設定好即可??
每日推荐:
3234/300排名<font color="#FF昨日变化5主题帖子积分
偶尔光临, 积分 234, 距离下一级还需 66 积分
偶尔光临, 积分 234, 距离下一级还需 66 积分
在线时间86 小时
估计你要把图片设置成advanced模式,然后选择可读写
每日推荐:
3154/300排名<font color="#FF昨日变化2主题帖子积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
在线时间43 小时
估计你要把图片设置成advanced模式,然后选择可读写
謝謝你的幫助^^
但我測試後出現了&&
NullReferenceException : Object reference not set to an instance of an object 請問我該怎麼處理?
每日推荐:
3234/300排名<font color="#FF昨日变化5主题帖子积分
偶尔光临, 积分 234, 距离下一级还需 66 积分
偶尔光临, 积分 234, 距离下一级还需 66 积分
在线时间86 小时
謝謝你的幫助^^
但我測試後出現了&&
NullReferenceException : Object reference not set to an instanc ...
空引用提醒,检查button1是否有实例化
每日推荐:
73264/5000排名<font color="#FF昨日变化19主题帖子积分
日久生情, 积分 3264, 距离下一级还需 1736 积分
日久生情, 积分 3264, 距离下一级还需 1736 积分
蛮牛币9324
在线时间427 小时
来自Mobile---
你这个就是没有获取到对象,出现空引用
每日推荐:
5596/1000排名<font color="#FF昨日变化主题帖子积分
熟悉之中, 积分 596, 距离下一级还需 404 积分
熟悉之中, 积分 596, 距离下一级还需 404 积分
蛮牛币1212
在线时间275 小时
謝謝你的幫助^^ 請問路徑有特定的格式嗎? 還是我寫的路徑即可??
Resources.Load 只能加载放在Resources文件夹下的,例如Resources文件夹下有图片为texture1.png,你要加载就写成Resources.Load (“texture1”, typeof(Sprite)) as Sprite,即可
每日推荐:
3154/300排名<font color="#FF昨日变化2主题帖子积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
偶尔光临, 积分 154, 距离下一级还需 146 积分
在线时间43 小时
Resources.Load 只能加载放在Resources文件夹下的,例如Resources文件夹下有图片为texture1.png,你要加载 ...
非常谢谢你的帮忙 问题已经解决
每日推荐:【求救】关于用代码来控制UGUI的Image显示的图片_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:62,187贴子:
【求救】关于用代码来控制UGUI的Image显示的图片收藏
主要就是怎么用c#来控制Source Image的值???
达内unity3d培训全程&实战教学&,unity3d专家讲师授课.免费unity3d课程试听中!到达内unity3d学院学习unity3d,只需4个月速成unity3d游戏工程师.
source image 是sprite 类型,sprite类型由一个引用的 texture 和大小位置等描述数据组成,如果你已经获得了sprite类型的引用,直接设置给source image;如果你只有texture而没有sprite,先创建sprite对象然后设置给source image。小提示:Image的完整命名空间是:UnityEngine.UI.Image
this.mObjCommonImage.sprite = mySprite
//要赋值的图片
//public T
// Use this for initialization
void Start () {
img.sprite =
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或求助,NGUI更换Button的背景图片_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:62,187贴子:
求助,NGUI更换Button的背景图片收藏
首先 我建立了一个精灵图集Atlas Maker,将用到的图片都导入进去了,然后用NGUI 建立UI,在Panel中创建了一个button当做音乐开关,默认选了一张Atlas Maker中的图片。音乐暂停,播放的功能已经实现。现在我想在点击button时候更换另一张图片,再点 图片换回来,请问怎么做啊。不知道怎么获取图集中的图片,赋给button啊?
达内unity3d培训全程&实战教学&,unity3d专家讲师授课.免费unity3d课程试听中!到达内unity3d学院学习unity3d,只需4个月速成unity3d游戏工程师.
代码如何实现啊? 播放暂停音乐的代码已经实现 就是在if else语句中加入更换图片的代码,请懂的人给个提示
GetComponentInChildren&UISprite&().spriteName = "XXX";
求创建精灵图集的方法
我也遇到这个问题了,怎么来切换哦
有图集直接改名字
用GUI的方法,先定义图片名字或者材质球名字,按后直接更换名字
更改 button 图片的方法:Btn.GetComponent&Image& ().sprite = Resources.Load&Sprite&(&Sprites/1x2x&);
// &Sprites/1x2x&是图片路径,只能放在 Resources下
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 unity3d button组件 的文章

 

随机推荐