using UnityEngine;
public class RaycastExample : MonoBehaviour
{
// Update is called once per frame
void Update()
{
// 如果鼠标左键被按下
if (Input.GetMouseButtonDown(0))
{
// 将鼠标位置转换为世界射线起点
Vector3 rayOrigin = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10f));
// 设置射线方向(从摄像机到点击的位置)
Vector3 rayDirection = rayOrigin - Camera.main.transform.position;
// 进行射线检测
if (Physics.Raycast(Camera.main.transform.position, rayDirection, out RaycastHit hit, 100f))
{
// 如果射线碰到物体,输出物体的名字
Debug.Log("Raycast hit: " + hit.transform.name);
}
}
}
}
这段代码会在每一帧检查鼠标左键是否被按下,如果是,它会在鼠标点击的位置发射一条射线,并检测这条射线是否碰到任何物体。如果碰到,它会输出物体的名字。注意,射线的长度被设置为100个单位长度,这需要根据你的游戏场景进行调整。