0

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

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

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

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

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

4

1 回答 1

3

you can useOnGUI for button and to disappear the rectangle you have to make a new 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   
        }
      }

if you dont want that you can do a raycasting your selfand give your buttons tags like below

 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

              }
          }
      }

in unity 4.6 UI you can add listeners to buttons in script like below

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

 void Start()
 {
   MyButton.onClick.AddListener(() => { somefunction(); });  
 }
于 2014-11-14T08:32:46.330 回答