我试图建立我的敌人行为,以便他们追逐玩家,同时避开障碍物(墙壁等)并保持彼此充分分离(部分植绒)。我想要的是让敌人与玩家保持联系而不会相互重叠。如果我将我的搜寻目标设定为高于单独的目标,即确实会发生什么:敌人会追逐玩家,但也会完全重叠到你赢得的并且能够区分它们的点。如果我将单独的目标设定为高于追逐目标,他们将追逐玩家并一直保持分离但是一旦他们到达了他们,他们就会旋转他们的位置,而不是继续为他而去。
任何提示?这是我的代码(我现在没有使用对齐和连贯规则):
let enemyGoals = GKBehavior(goals: [
alignGoal,
cohereGoal,
separateGoal,
chaseGoal,
avoidGoal
]);
// enemyGoals.setWeight(90, for: chaseGoal);
// enemyGoals.setWeight(95, for: avoidGoal);
enemyGoals.setWeight(100, for: separateGoal);
enemyHead.agent.behavior = enemyGoals;
agentSystem.addComponent(enemyHead.agent);