東ゲ部の進捗
先週挙げた要修正箇所は以下の通りでした。
- SEをつける
- 連鎖数を数える機能を追加する
- せり上がりが連鎖を組み立てるシステムと噛み合ってないので上から降ってくるようにする
- タイムアタックモードを作る
- チュートリアルを作る
- 難易度調整で色数を変えられるようにする
まずは第一歩ということで、ブロックをクリックしたときの効果音をつけました。
効果音の素材はこちらからお借りいたしました。
OnSortiePointClick() 内で効果音を鳴らす
備忘録として。
どのブロックがクリックされたかを OnSortiePointClick 関数で検知しているのだけれど、
ブロックの色を変える処理の前で <AudioSource>.Play()
を実行すると
そこで「参照したAudioSourceがassignされてない」とかでエラーになる。
スクリプトをアタッチしたオブジェクトにちゃんと AudioSource も AudioClip もアタッチしてあるのに何故…?
と思いはしたが、関数内からオブジェクトを参照できないのかもしれない、
だったらオブジェクトを参照できれば解決するだろうと思って以下のようにしてみた。
public void OnSortiePointClick(...) { // スクリプトがアタッチされているオブジェクトを探す GameObject tmp_game_object = GameObject.Find("object_name"); // 探したオブジェクトにアタッチされている AudioSource を探す AudioSource tmp_audio_source = tmp_game_object.GetComponent<AudioSource>(); // 略 // クリックされたブロックの色を変える(Voidのときはそのまま) if ( /* ブロックがクリックされたときの処理 */ ) tmp_source_sound_clicked.Play(); }
これでOKだった(最適だったかは知らぬ)