func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
の中で同時に別のノードでフェードしている間にノードをフェードアウトしようとしています。レンダラーで同期して2つのタスクを実行中:
バックグラウンドスレッドでSCNActionsの1つを実行するのがうまくいくのだろうか?
ありがとうございます。
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
の中で同時に別のノードでフェードしている間にノードをフェードアウトしようとしています。レンダラーで同期して2つのタスクを実行中:
バックグラウンドスレッドでSCNActionsの1つを実行するのがうまくいくのだろうか?
ありがとうございます。
SCNAction
は、シーンがレンダリングされるたびに小さなインクリメントで属性を変更して素敵なアニメーションを与えるための、すばらしいユーティリティクラスです。
updateAtTime
関数は、シーンがレンダリングされるたびに1回だけ呼び出されます。この機能では、シーンを変更することができ、これらの変更はすぐに表示されます。シーンにわずかな増分変更を加えるだけで、SCNAction
と同じアニメーション効果を得ることができます。
; updateAtTime
関数で次のようなものを入れてみてください。myNodeA
ノードをフェードアウトし、myNodeB
をフェードインします(シーン設定で不透明度が0に設定されていると仮定します)。
self.myNodeA.opacity -= 0.01
self.myNodeB.opacity += 0.01
は特にupdateAtTime
関数内から、バックグラウンドスレッドからSCNAction
を実行している反対勧め。どちらもあなたが望むものを達成するための有効なアプローチです。両方を使うのではなく、どちらか一方を使うだけです。
ご協力いただきありがとうございます。 – P3rry