WWDC 2017 の SceneKit サンプル Fox 2 を調べる その19
今回は、PlayerComponent.swift を見てゆく。
中身は Character クラスを取得する変数と update の変数があるだけ。
PlayerComponent クラスの中身
import GameplayKit class PlayerComponent: BaseComponent { public var character: Character! override func update(deltaTime seconds: TimeInterval) { positionAgentFromNode() super.update(deltaTime: seconds) } }
public var character: Character!
PlayerComponent のメンバ変数として character が設定されている。
character は ChaserComponent、ScaredComponent でプレイヤーキャラクター Max が敵キャラへ攻撃、接触した際に位置から方向を取得する際に使用している。
override func update(deltaTime seconds: TimeInterval)
BaseComponent の update 関数をオーバーライドしている。 変更した中身は BaseComponent の関数 positionAgentFromNode() でagent の transform に node の simdTransform を渡している。
ChaserComponent や ScaredComponent で GKBehavior の計算を行うため。
次回は ChaserComponent.swift を見てゆく。