GKAgent не двигается

У меня есть GKAgent в моем проекте, который я пытаюсь перенести, следуя по пути. Путь был создан вместе с соответствующими целями и поведением, и он будет двигаться до тех пор, пока я никогда не установлю его позицию. К сожалению, я не хочу, чтобы это начиналось в углу экрана, но если я установлю позицию, агент не будет реагировать на свою цель следования по пути. У кого-нибудь есть понимание этой проблемы?

    let path1 = GKPath(graphNodes: path, radius: Float(2.0))

    let moveGoal = GKGoal(toFollowPath: path1, maxPredictionTime: 1.0, forward: true)
    let stayGoal = GKGoal(toStayOnPath: path1, maxPredictionTime: 1.0)
    let behavior = GKBehavior(goals: [moveGoal, stayGoal] , andWeights: [5.0, 10.0])

    agent.maxSpeed = 100
    agent.maxAcceleration = 50
    agent.radius = 40.0
    agent.behavior = behavior
    agent.delegate = self
    addComponent(agent)

func agentWillUpdate(agent: GKAgent) {
    updateAgentPositionToNode()
}

func agentDidUpdate(agent: GKAgent) {
    updateSpritePositionToAgent()
}

func updateSpritePositionToAgent() {
    print(agent.position)

    let agentPos = CGPoint(x: CGFloat(agent.position.x), y: CGFloat(agent.position.y))

    renderComponent.spriteNode.position = CGPoint(x: CGFloat(agentPos.x), y: CGFloat(agentPos.y))

}

func updateAgentPositionToNode() {
    let renderComp = self.renderComponent

    agent.position = float2(Float(renderComp.spriteNode.position.x), Float(renderComp.spriteNode.position.y))
}

1 ответ

Я убрал стоп-гол и добавил его вручную

Другие вопросы по тегам