0

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つの「立場」が逆転しているように見えます。これを修正する方法はありますか?

4

1 に答える 1