c# - 无法将类型 `bool' 隐式转换为 `UnityEngine.RaycastHit'

标签 c# unity3d

您好,我尝试从 gameObject 旁边投出一条线到 gameObject:

bool Valid(Vector3 direction)
{
    Vector3 position = transform.position;
    RaycastHit hit = Physics.Linecast (position + direction, direction);
    return (hit.collider == GetComponent<Collider>());
}

错误:

Cannot implicitly convert type bool' toUnityEngine.RaycastHit'

最佳答案

Physics.Linecast 如果有任何碰撞器与 startend 之间的线相交,则返回 true,它不返回 RaycastHit

您必须添加 hit 变量作为第三个参数:

RaycastHit hit;
Physics.Linecast(position + direction, direction, out hit);

参见 API了解更多信息。

关于c# - 无法将类型 `bool' 隐式转换为 `UnityEngine.RaycastHit',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29323335/

相关文章:

c# - 在 ICSharpCode 文本编辑器中选择文本

unity3d - 使用 ScriptableObject.CreateInstance 实例化

c# - 在 Unity3d 中获取 App Bundle 版本

opencv - 如何在Unity3D中检测人体

c# - .NET、分层架构和 MongoDB - 使用什么作为 ID?

c# - 找不到 Xamarin.Forms 资源文件

c# - 如何在运行时分配数组值

c# - 如何在 C# 中将默认的 FlushMode 更改为 Commit?

unity3d - 游戏架构 P2P 加入游戏中期

linux - 为什么在 Linux 上执行 GET 请求时 UnityWebRequest 返回未知错误?