检测墙碰撞

时间:2016-08-18 19:40:12

标签: c#-4.0 unity3d

在我的游戏中,我有多个僵尸和一个玩家。我已经导入了城市(在搅拌机中使用osm创建)到我的场景中。

现在我想,我的僵尸应该检测到墙壁碰撞(如果发生在他们身上)并且应该向玩家移动。

我使用了transform.LookAt(target);,以便Zombies除非死亡/毁坏,否则应该寻找他。

我已经将墙壁标记为“墙壁”并检测到墙壁碰撞/触发器与僵尸,因此我不应该在墙壁之间穿过,而OnTriggerEnter,gameObject在90处旋转。

现在的问题是当僵尸触摸墙壁时,碰撞/触发发生并且僵尸旋转@ 90并开始移动,但它继续移动..我想一旦墙壁结束,他应该再次开始向玩家移动..

请提供任何逻辑创意或剧本。

1 个答案:

答案 0 :(得分:0)

逻辑思路: 使对撞机成为触发器,使僵尸进入它然后转90度。然后它会在退出时转向玩家。

void OnTriggerEnter(Collider other)
{
   //zombie turn (avoid wall)
}
void OnTriggerExit(Collider other)
{
  //zombie chases the player by rotating -90degeree or whatever the angle it changed on entering the trigger
}