在Unity3D 2D模式下创建一个简单的按钮

时间:2014-11-14 03:03:05

标签: c# unity3d unity3d-2dtools

我正在使用Unity 3D,v4.5中的2D游戏。我在Hierarchy中添加了一些sprite。如何在层次结构中添加按钮?我已经有一个指定的button.png应该显示为按钮。我应该将精灵变成按钮吗?

到目前为止我尝试了什么:

  • 有人注意到了GUI.Button,但是

    1:必须在代码中完成 - 我假设我们可以在Unity GUI中添加按钮到游戏UI(??)

    2:即使在脚本中使用GUI.Button,该类也会在指定的纹理周围添加边框。我还没想出如何使用精灵的现有图像和大小(宽度/高度)作为发送到GUI.Button的纹理。

1 个答案:

答案 0 :(得分:3)

你可以使用OnGUI作为按钮并消除你必须制作新GUIStyle的矩形

    private GUIStyle testStyle = new GUIStyle();
    public Texture2D Texture1;

    void OnGUI(){

    if( GUI.Button( new Rect (0, 0, 100, 100) , texture1 ,testStyle) )
        {
          //doSomething if clicked on   
        }
      }

如果你不想要你可以做自己的光线投射并给你的按钮标签如下

 void Update () {
         if (Input.GetMouseButtonDown (0)) {
              Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
             RaycastHit hit;
              if (Physics.Raycast(ray, out hit)) {
               if(hit.collider.tag=="play")
                   //DoSomething

              }
          }
      }

在unity 4.6 UI中,您可以将监听器添加到脚本中的按钮,如下所示

 private Button MyButton = null; // assign in the editor

 void Start()
 {
   MyButton.onClick.AddListener(() => { somefunction(); });  
 }