仅在 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)
这样的四个调用并检查调用之间的命中率。
我正在尝试创建一个迷宫游戏,玩家只有在看到糖果时才能移动。
目前光线投射正在各个方向(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)
这样的四个调用并检查调用之间的命中率。