我正在使用Unity 3D,v4.5中的2D游戏。我在Hierarchy中添加了一些sprite。如何在层次结构中添加按钮?我已经有一个指定的button.png应该显示为按钮。我应该将精灵变成按钮吗?
到目前为止我尝试了什么:
有人注意到了GUI.Button,但是
1:必须在代码中完成 - 我假设我们可以在Unity GUI中添加按钮到游戏UI(??)
2:即使在脚本中使用GUI.Button,该类也会在指定的纹理周围添加边框。我还没想出如何使用精灵的现有图像和大小(宽度/高度)作为发送到GUI.Button的纹理。
答案 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(); });
}