如何在unity3d 不规则按钮中创建最简单的按钮

cocos2dx 3.3 如何为创建一个按钮
- cocos2dx技术 - 泰课在线 - 国内专业的Unity在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发|美术CG|UI平面设计|前端开发 - Powered By EduSoho注册花火通行证,没有账号
智能硬件分类
&>&&>& > 正文
分享文章到微信
关注花火网微信公众号
  unity3d中通过对一个按钮的创建使用,从而了解unity3d中UI的使用。  1、打开unity3d项目“GameObject”--“UI”--“Button”,创建一个按钮。  2、在“Rect Transform”下可以改变按钮的布局位置大小等。  3、在“Image (Script)”与“Button(Script)”中可以更详细的设置按钮的颜色等效果。  4、展开Button在其中的“Text”中的“Text(Script)”中可以设置按钮显示文字信息。  5、新建一个文件夹“Script”在里面新建一个“Button_test”的脚本,打开后在里面添加一个方法  public void Click_test(){  Debug.Log(&点击测试&);  }  6、把编辑好的“Button_test”脚本添加到场景中的Button上。  7、点击“On Click ()”下的“+”添加,然后Object中选择添加“Button”。  8、点击“No Function”选择“Button_test”--“Click_test &()”,保存后运行,点击按钮旧可以调用脚本中我们定义的Click_test ()方法,输出“点击测试”。  注意事项:  脚本中定义的方法必须是public的,否则找不到。
加载更多新闻
Copyright @ 2015-, All Rights Reserved. 版权所有 花火网Unity3D-动态实例化按钮的总结 - PooBee的专栏 - CSDN博客
Unity3D-动态实例化按钮的总结
目前,我收集到的动态创建按钮只有2种方法。 如果谁还有另外动态创建按钮的方法。可以给我留言,谢谢。
前提:动态创建按钮,都需要创建一个按钮预设体ButtonPrefabs,假如,我们创建四个按钮。
第一种:使用Instantiate() 方法。
for(int i = 0 ;i &4 ;i++)
GameObject obj = (GameObject)Instantiate(ButtonPrefabs) ; & //实例化按钮
& & & & obj.transform.Translate(new Vect3(obj.transform.localPosition.x,obj.transform.localPosition.y+(i*-1.5),obj.transform.localPosition.z)) ;
//按钮显示的位置
//显示效果 : 垂直排列显示
//注意:localPosition---自身位置 &+(i*-1.5) -----在自身位置的Y轴上移动多少距离(相对于第一个创建的按钮来讲)
第二种: 使用NGUITools()方法.
注意: 导入NGUI。
for(int i = 0 ;i &4 ;i++)
GameObject obj = NGUITools.AddChild(this.gameObject,ButtonPrefabs) ; & //实例化按钮
& & & & obj.transform.Translate(new Vect3(obj.transform.localPosition.x,obj.transform.localPosition.y+(i*-1.5),obj.transform.localPosition.z)) ;
//按钮显示的位置
注意:&NGUITools.AddChild(GameObject parent ,Prefabs pre) &使用NGUITools方法添加物体,前提需要一个父物体。它会相对于这个父物体来添加子物体。
以上这两种方法创建后,显示的效果,要么,是垂直显示的,要么水平显示的。但是,这两种,在项目中,有些时候满足不了。例如,我要显示一个2x2格局式的按钮位置,怎么办?
观察,Translate()方法,这个方法中需要一个Vect3的参数。像2x2这种格局的,如果要用程序来实现的话,过于麻烦,那么,我们可以把2x2的按钮位置(Position)可以用list存储下来。
list&Vect3& list = new List&Vect3&() ;
//添加位置数据
list.Add(new Vector3(0,0,5.35f)) ;
list.Add(new Vector3(0,0,0.39f)) ;
list.Add(new Vector3(0,-3.2f,0.39f)) ;
list.Add(new Vector3(0,-3.2f,5.35f)) ;
修改上面的代码。
for(int i = 0 ;i &4 ;i++)
GameObject obj = NGUITools.AddChild(this.gameObject,ButtonPrefabs) ; & //实例化按钮
& & & & obj.transform.Translate(list[i]) ;
//按钮显示的位置
我的热门文章Unity3D中GUI的操作还是比较方便的,显示按钮只需要在脚本中用GUI.Button显示即可。
GUI.Button的函数原型:
static function Button(position: Rect, text: string):
static function Button(position: Rect, image: Texture):
static function Button(position: Rect, content: GUIContent):
static function Button(position: Rect, text: string, style: GUIStyle):
static function Button(position: Rect, image: Texture, style: GUIStyle):
static function Button(position: Rect, content: GUIContent, style: GUIStyle):
参数position 屏幕中的位置text 按钮文字image 按钮图片content 按钮上文字、图片和工具提示style 风格
下面是具体的例子:
public class ButtonsScript : MonoBehaviour {
public Texture buttonT
private int repeatTime = 0;
private string info = "";
void Start () {
// Update is called once per frame
void Update () {
void OnGUI()
// 文本显示
GUI.Label (new Rect (50, 200, 200, 50), info);
// 第一个文字按钮
GUI.color = Color.
//按钮文字颜色
GUI.backgroundColor = Color. //按钮背景颜色
if(GUI.Button(new Rect(50,250,200,30), "Button1"))
info = "按下了Button1";
// 第二个图片按钮
GUI.color = Color.
//按钮文字颜色
GUI.backgroundColor = Color. //按钮背景颜色
if(GUI.Button(new Rect(50,300,128,64), buttonTexture))
info = "按下了Button2";
// 持续按下的按钮
if(GUI.RepeatButton(new Rect(50,400,200,30),"按钮按下中"))
info = "按钮按下中的时间:"+ repeatT
repeatTime++;
代码中显示了三种类型的按钮:文字、图片、持续按下的按钮。
下载源代码:
您还没有登录,请或

我要回帖

更多关于 unity3d 按钮切换图片 的文章

 

随机推荐