You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Raycast仅能从左侧命中胶囊碰撞体问题求助

问题描述

我希望从玩家位置向仅带有Capsule Collider的胶囊对象位置发射Raycast,但不知为何该射线仅能从左侧命中目标。相关代码如下:

RaycastHit2D _ray = Physics2D.Raycast(transform.position, collision.transform.position, 100f, playerL);

射线命中问题示意图
我确认Layer设置全部正确,因为射线从左侧可以正常命中,目前不知道该如何解决这个问题。

问题根源

Physics2D.Raycast的第二个参数要求传入方向向量,但你现在直接传了目标的世界位置。这种情况下,只有当目标在左侧时,这个错误的“方向”碰巧能覆盖到目标,其他方向自然无法命中。

修复方案

把第二个参数改成目标位置减去玩家位置,得到真正指向目标的方向向量:

// 计算从玩家到目标的方向向量
Vector2 direction = collision.transform.position - transform.position;
RaycastHit2D _ray = Physics2D.Raycast(transform.position, direction, 100f, playerL);

如果担心方向向量的长度影响射线检测(比如目标离得远时方向向量过长),可以先归一化:

Vector2 direction = (collision.transform.position - transform.position).normalized;
RaycastHit2D _ray = Physics2D.Raycast(transform.position, direction, 100f, playerL);

修改后射线就能准确指向目标,不管目标在哪个方向都能正常命中。

内容的提问来源于stack exchange,提问作者user21182433

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 12:45:56