using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CursorManager : MonoBehaviour
{
// 获取鼠标的世界坐标
private Vector3 mouseWoldPos => Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0));
private bool canClick; // 标识鼠标位置是否有可点击对象
// 每帧更新
private void Update()
{
// 检查鼠标位置是否有对象
canClick = ObjectAtMousePosition();
// 如果有对象且鼠标左键按下
if (canClick && Input.GetMouseButtonDown(0))
{
// 执行点击操作
ClickAction(ObjectAtMousePosition().gameObject);
}
}
// 执行点击操作的方法
private void ClickAction(GameObject clickObject)
{
// 根据点击对象的标签执行相应操作
switch (clickObject.tag)
{
case "Teleport":
var teleport = clickObject.GetComponent<Teleport>(); // 获取Teleport组件
teleport?.TeleportToScene(); // 如果组件存在,则调用TeleportToScene方法
break;
}
}
// 检测鼠标位置是否有对象的方法
private Collider2D ObjectAtMousePosition()
{
// 使用物理检测鼠标位置上的2D对象
return Physics2D.OverlapPoint(mouseWoldPos);
}
}
05-31
3600
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-12
2581
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-06
2391
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-01
05-01