Unity - Phyics.Raycast returns false
本文关键字:returns false Raycast Phyics Unity | 更新日期: 2023-09-27 18:27:39
我创建一个emtpy游戏对象并附加.cs文件。我尝试在鼠标单击位置加载预制件(.obj 文件(。我的代码是:
Ray ray;
RaycastHit hit;
public GameObject prefab;
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
ray=Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
GameObject obj = Instantiate(prefab, new Vector3(hit.point.x, hit.point.y, hit.point.z), Quaternion.identity) as GameObject;
}
else
{
Debug.Log("Physics.Raycast returns false");
}
}
光线投射每次都返回 false。
您需要
将碰撞体添加到游戏对象中
对于物理3D
描述
对场景中的所有碰撞体投射光线。
Physics.Raycast Script API 文档在这里。
用于物理2D
描述
对场景中的碰撞体投射光线。
光线投射在概念上就像从某个点发射的激光束 在沿特定方向的空间中。任何接触的物体 可以检测和报告光束。
Physics2D.Raycast Script API 文档在这里。
您需要将
3D 碰撞体附加到精灵游戏对象上,才能被光线投射检测到。
在这里查看我的完整答案