演出を作成時に GameObject をアクティブにして演出を再生させたい場合表示がちらつくことがある
おそらくこれは、GameObject の 表示のタイミングと Animation の再生されるタイミングが同時じゃないから発生してると思われる
そのためどれくらい遅延してるか確認する
確認方法
以下のコンポーネントを貼り付けて、Animator の 0フレーム目にイベントを仕込み呼び出す
public class ActiveCall : MonoBehaviour { private void OnEnable() { Debug.Log($"Enable: {Time.realtimeSinceStartup}"); } } public class AnimatorCall : MonoBehaviour { private void Call() { Debug.Log($"Animator Call: {Time.realtimeSinceStartup}"); } }
結果
Enable: 2.825151 Animator Call: 2.947662 0.122511 秒となった
もし 30 FPS の場合 1F が 1 / 30 = 0.333... なので 4フレームほど表示されている状態になると考えられる
そのため、もし Animation で非表示から表示する演出を作成する場合は Awake 側で非表示にしないとちらついて見える可能性が高いことが分かった