Unity3D光线投射方向错误c#

Unity3D raycasting wrong direction c#

foreach (Transform transf in spawnPoint) {
        if (Physics.Raycast (transf.position, player.position, out test, 1000))
            Debug.DrawLine (transf.position, test.point, Color.yellow);
    }

这是我的代码。这就是我得到的:

Player 是一个带有相机的游戏对象,transforms 在这里不可见,但它们在每条黄线的左侧。为什么它不指向播放器?你要射线指向播放器做什么? 绿线的工作原理与黄色类似,但无缘无故 canvas。

Physycs.Raycast 的第二个参数是方向,因此您应该计算从变换到玩家的方向:

foreach (Transform transf in spawnPoint) {
    if (Physics.Raycast (transf.position, player.position - transf.position, out test, 1000))
        Debug.DrawLine (transf.position, test.point, Color.yellow);
}