GameplayKit と Swift を使用しています。エージェントの移動コンポーネントで、agentWillUpdate: を実行していますが、位置が決定される行で、「型 '(CGPoint)' の引数リストで型 'Float2' の初期化子を呼び出すことができません」というエラーが表示されます。
MoveComponent: GKAgent2D, GKAgentDelegate {
init(...)
func agentWillUpdate(agent: GKAgent) {
guard let spriteComponent = entity?.componentForClass(SpriteComponent.self) else {
return
}
position = float2(spriteComponent.node.position)
}
ノードの位置は問題ありません (私はプリントでこれをテストしました)。「位置」を CMD クリックすると、GKAgent2D のプロパティではなく、SpriteKit の位置プロパティが表示されます。agent.property を使用してプロパティを参照しようとすると、デバッガーから「型 'GKAgent' の値にメンバー '位置がありません」と表示されます。
次の関数呼び出しで、元のエラーと同じエラーが逆に表示されます。
func agentDidUpdate(agent: GKAgent) {
guard let spriteComponent = entity?.componentForClass(SpriteComponent.self) else {
return
}
spriteComponent.node.position = CGPoint(position)
}
CGPoint(position) を CMD クリックすると、GKAgent2D が表示されます。2つの「立場」が逆転しているように見えます。これを修正する方法はありますか?