FC2ブログ
就活で精神攻撃を与えらた結果、こうなりゃ一人でやってやんよ!という理由でAndroidアプリの開発をしてるぼくの活動記録です。お金に成るクオリティにしたいのです^p^
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
動いていたスクリプトにとある一文を挿入したらエラーが出た。
意味が分からないことにその文章に関してのエラーでなく
よその箇所がエラーとして検出されるのだ!!

意味が分からん!!と思って色々調べた結果、解決。
メモっておこう。

まずエラー文だが、
Assets/〜/スクリプト名.js(74,42): BCE0070: Definition of 'スクリプト名.Start()' depends on 'スクリプト名.メソッド名()' whose type could not be resolved because of a cycle. Explicitly declare the type of either one to break the cycle.
とまぁこんな感じ。

Assets/〜/スクリプト名.js(74,42)で問題あり、とのことだけど
別のスクリプトファイルでメソッドを作成したら上記のように全然違う場所でエラーが起きた。
試しに作成したメソッドの内容をコメントアウトすると普通に動く。
そしてコメントアウトを解除すると上記エラー。
バグか?と思いとりあえずグーグル先生にご助力願う。

どうやら追加した分のメソッド内容で
別のファイルのメソッドを実行→実行先のメソッドでさらに他所のファイルメソッドを実行
という事をしているのだがこれが原因っぽい。
再帰関係の処理とかでもおこるっぽいけど、再帰処理なんてしらねーよあばばば^p^

解決策だが以外に簡単に解決した。
実行先のメソッドでさらに他所のファイルメソッドを実行
赤字の部分の戻り値をIEnumeratorとすることでこのエラーは解消された。

そういえばC#ではyieldを使うところでIEnumeratorを戻り値としないといけないとかなんとか
それがとある条件でjsのほうでも必要となるのだろう。
今回のエラーは知らずのうちにその条件を満たすことで起きたエラーなのだ。

いや〜もっと知識を深めないとまずいな・・・
一応今回のことで無駄に情報収集する事ができたからよしとしよう。
有益な情報もぼちぼち得られたと思うし。

新作も土台が固まってきたし残りは主にキャラ制作。これがまた時間かかりそうだな。
遅くても12月上旬にはリリースして、また他に勉強+新作作りを行いたい。
スポンサーサイト
コメント
この記事へのコメント
このコメントは管理人のみ閲覧できます
2013/11/23(土) 09:07 | | #[ 編集]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://unitydev.blog.fc2.com/tb.php/64-989e6846
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。