###Unityでアイテムが消える(取得)時にSEがなるようにしたい
プログラミング自体初心者です。
https://github.com/unity3d-jp/FirstTutorial/wiki
上記のサイトの玉転がしチュートリアルは完了したのですが、自分でいろいろ追加してみようと考え、プレイヤーがCapsuleに触れ、Capsuleが消滅したタイミングでSEをならすようにしたいと考えましたが、どうにもうまく行きませんでした。
疑問が2つあります。
1.なぜ自分で作った「SoundEffect」のコードでは動かないのか
2.SEをつけるのに、新しいC#ファイルを作る必要があるのか(全部ひとつにまとめられないのか)
チュートリアル内の「Item.cs」を書き換えて以下のようにしています。
これは重力を受けられるように変更したつもりです。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class ItemMove : MonoBehaviour 6{ 7 //トリガーとの接触時に呼ばれる 8 void OnCollisionEnter(Collision col) 9 { 10 //接触対象はなんのタグ?(プレイヤー) 11 if (col.gameObject.CompareTag ("Player")) 12 { 13 //このコンポーネントを持つ破壊する 14 Destroy (gameObject); 15 } 16 } 17}
これとは別に、「SoundEffect」というコードも書いてみました。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class SoundEffect : MonoBehaviour 6{ 7 public AudioClip sound01; 8 9 void Update () 10 { 11 if (Destroy (gameObject)); 12 { 13 audio.PlayOneShot (sound01); 14 } 15 } 16} 17
if (Destroy (gameObject));がエラーになりますが、なんとなく自分でもそんな気はしていました。
しかし、自分ではなぜこれでは駄目なのか、ということがいまいち理解できませんでした。
これではifの条件になっていないということなのでしょうか。
ファイルを分けて作ったほうが自分が作りやすいかと思って分けて作りました。
しかし、一つにまとめてItemの動きをすべて管理したほうがよいのでしょうか。
長くなった上に、大したことない質問で申し訳ありません。
どなたか、ご回答いただければと思います。
###補足情報(言語/FW/ツール等のバージョンなど)
UnityVersion 2017.1
Mac Sierra 10.12.6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/08 03:38