仅在 4 个方向上的 Unity3D RayCasting

Unity3D RayCasting in 4 directions only

我正在尝试创建一个迷宫游戏,玩家只有在看到糖果时才能移动。

目前光线投射正在各个方向(360 度)搜索但我只希望光线投射直接向上、向左、向下、向右(而不是 360 度)。 .. 这样玩家只能在糖果放在直接视线内时移动。

public function setTargetSweet(target:GameObject)
{
    too = target.transform.position;
    targetSweet = target;

    var fwd = too - transform.position;

    Debug.Log("Setting target sweet: " + target.name);
    Debug.DrawRay(transform.position, fwd, Color.red, 5f);

    Physics.Raycast (transform.position, fwd, hit);

    if ( hit.collider.tag == "MoveToSweet") {
        print ("Can See Sweet");
        gotoSweet = true;
    }
    else
    {
        Debug.Log(hit.collider.name);
        Debug.Log(hit.collider.tag);
        gotoSweet = false;
    }
}

你每次都在向任何糖果的方向进行光线投射。您需要像 Physics.Raycast(transform.position, Vector3.forward, hit) 这样的四个调用并检查调用之间的命中率。