【问题标题】:Create a simple button in Unity3D 2D mode在 Unity3D 2D 模式下创建一个简单的按钮
【发布时间】:2014-11-14 03:03:05
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 请注意,unity 4.6 指日可待,它添加了一个全新的 gui 系统。查看测试版和 4.6 gui 教程视频。
  • 此时肯定要签出 4.6。它可能会在我完成 4.5 之外的任何内容之前发布。我认为 Cocos2D 等很简单,但 Unity3D 太难了 :-P 有人应该为 Cocos2D 开发者编写 Unity3D 入门。

标签: c# unity3d unity3d-2dtools


【解决方案1】:

你可以使用 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(); });  
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    相关资源
    最近更新 更多