2017-03-22 13 views
0

func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {の中で同時に別のノードでフェードしている間にノードをフェードアウトしようとしています。レンダラーで同期して2つのタスクを実行中:

バックグラウンドスレッドでSCNActionsの1つを実行するのがうまくいくのだろうか?

ありがとうございます。

答えて

1

SCNActionは、シーンがレンダリングされるたびに小さなインクリメントで属性を変更して素敵なアニメーションを与えるための、すばらしいユーティリティクラスです。

updateAtTime関数は、シーンがレンダリングされるたびに1回だけ呼び出されます。この機能では、シーンを変更することができ、これらの変更はすぐに表示されます。シーンにわずかな増分変更を加えるだけで、SCNActionと同じアニメーション効果を得ることができます。

; updateAtTime関数で次のようなものを入れてみてください。myNodeAノードをフェードアウトし、myNodeBをフェードインします(シーン設定で不透明度が0に設定されていると仮定します)。

self.myNodeA.opacity -= 0.01 
self.myNodeB.opacity += 0.01 

は特にupdateAtTime関数内から、バックグラウンドスレッドからSCNActionを実行している反対勧め。どちらもあなたが望むものを達成するための有効なアプローチです。両方を使うのではなく、どちらか一方を使うだけです。

Documentation is worth a read

+0

ご協力いただきありがとうございます。 – P3rry

関連する問題