今組んでいるスクリプトで潜在的な問題が見つかった。
もう少し具体的に言うと、iTweenを使って状態変化のアニメーションを実装しているのだが、状態の変化とアニメーションの区別を明確に切り分けていなかったため、状態とアニメーションとが同期が取れていないという問題だ。
極端にたとえるならこうだ。
たとえば、カードが登場するプログラムがあるとする。
このカードは伏せてある。
これを1分かけてゆっくりめくるとする。
さて、プログラム内部では、どの時点でカードがめくられたと判断するのか。
いろんな答えがあるかもしれない。
俺の場合のポリシーとしては、開くという命令が実行された時点でカードはめくられたものとして扱うように統一すべきだ。
さもなければ、たとえば開かれたカードの得点を合計する、というプログラムが正しく動作するためには、カードが開かれるまで待機しなければならなくなる。
このことから得られた教訓はこうだ。
状態変化は状態の表現より優先すべし。
ちなみにいま、どうなっているかというと特にポリシーが無かったので、場合によって直ちに状態が変化したり、アニメーションを待って変化したりまちまちだ。
このまま作り続けても動くものは作れる。
しかし、長い目で見るとメンテナンスや品質管理のコストが増え続けることになる。
またリファクタリングか。
つらい、すすまない。どころか戻ってる。
Related Posts
カテゴリー: Unity4