unity-game-engine - 放大 RayCast 大小的最佳方法

标签 unity-game-engine

我在地板上画了一个圆圈。所有经过该圆圈的东西都应该被检测到。以下代码有效:

void Update () {
    RaycastHit hit;
    Ray landingRay = new Ray (transform.position, Vector3.up);

    // This debug does not seem to work:
    Debug.DrawRay (transform.position, Vector3.up * 50);

    if( Physics.Raycast(landingRay, out hit) ){
        Debug.Log("raycast is working!");
    }
}

但是,我认为 RayCast 仅位于我绘制的 Sprite 的中心 (1),因此它并没有覆盖整个圆 (2):

current and wanted raycasts

有执行此操作的最佳方法吗?或者我应该在同一个脚本中编写多个 RayCast 代码?

最佳答案

我建议在您的圆圈上放置一个球体或胶囊碰撞器(处于触发模式)并在 OnTriggerEnter() 中处理碰撞。这应该比光线转换更有效。

您可以看到official video tutorial关于这个主题。

关于unity-game-engine - 放大 RayCast 大小的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31971652/

相关文章:

android - admob 和统一/崩溃

c# - 如何统一针对不同屏幕尺寸设置基于购物的 UI?

unity-game-engine - 使用 Affectiva SDK 构建 Unity 项目在构建后不起作用

android - Unity3D - 多个 dex 文件定义了为 android (Firebase) 构建时的异常

javascript - Unityscript动画参数UCE0001 : ';' expected

c# - 在 Android 上安全地存储加密 key

ios - 升级到 Unity 4.6.1 后 Xcode 6.1.1 链接器错误 : entry point (_main) undefined. for architecture armv7

c# - 在 iOS 上的 C# IL2CPP 中通过反射调用泛型方法

c# - 在unity 2D c#中如何旋转像几何破折号这样的对象?

unity-game-engine - Unity3d 文件类型。 : . 元、.controller、.anim、.asset 分别是什么?