Unity3D仅在4个方向上进行RayCasting

时间:2015-09-17 13:26:57

标签: unity3d raycasting

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

目前,光线投射正在向各个方向搜索(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;
    }
}

1 个答案:

答案 0 :(得分:1)

你每次都会朝着任何甜蜜的方向投射光线。你需要四个调用,如Physics.Raycast(transform.position, Vector3.forward, hit),并检查呼叫之间的匹配。