unity 点击鼠标左键 判断选中了哪个 button
时间: 2023-12-21 22:06:48 浏览: 167
要判断点击鼠标左键选中了哪个Button,你可以使用Unity的EventSystem和Raycast来实现。
首先,确保你场景中有一个EventSystem对象。然后,在每个Button对象上添加一个Button组件,并设置每个Button的OnClick事件。
接下来,在你的脚本中添加以下代码,该代码会在点击鼠标左键时进行Raycast检测,判断是否有Button被选中:
```c#
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class ButtonSelection : MonoBehaviour
{
void Update()
{
// 如果鼠标左键被点击
if (Input.GetMouseButtonDown(0))
{
// 创建一条从鼠标位置发射的射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// 创建一个RaycastHit2D对象,用于储存射线与碰撞对象的信息
RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction);
// 如果射线碰撞到了一个对象,并且该对象是一个Button
if (hit.collider != null && hit.collider.GetComponent<Button>() != null)
{
// 获取被选中的Button
Button selectedButton = hit.collider.GetComponent<Button>();
// 在控制台输出被选中的Button的名字
Debug.Log("Selected button: " + selectedButton.name);
}
}
}
}
```
这段代码会在点击鼠标左键时创建一条从鼠标位置发射的射线,并使用Raycast进行碰撞检测。如果射线碰撞到了一个Button对象,则会获取该Button对象,并在控制台输出它的名字。
阅读全文