ここから本文です

unity5C#についての質問ですが 3Dアクションゲームを制作しておりましてプレイ...

azu********さん

2015/7/813:38:00

unity5C#についての質問ですが

3Dアクションゲームを制作しておりましてプレイヤーに向かってくる敵とプレイヤーがぶつかったときに音を鳴らすのはどうしたらいでようか?

衝突音のようなものをつけようと思っています

unity5C,プレイヤー,3Dアクションゲーム,衝突音,いでようか,AudioSource&gt,Collider

閲覧数:
92
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

raf********さん

2015/7/1004:45:45

ぶつかるというのは、互いにrigidBodyのcomponentを追加して、
物理エンジンを使う設定にして、colliderという、衝突範囲を表すcomponetを
追加してやれば、
互いのcolliderが接触するとonCollisionEnterという関数が呼ばれます。

void OnCollisionEnter(Collision collision) {
AudioSource audioSource = gameObject.GetComponent<AudioSource>();
audioSource.PlayOneShot(anySE);
}

これだと、衝突で互いに跳ね飛ばされるのですが(物理エンジンの機能で)
衝突は知りたいけど、ぶつかって跳ね飛ばされるのは無い方が良い場合は
rigidbodyの設定で、isTriigerをonにすると、物理エンジンは使わずに
衝突だけ検出できます
その場合は、OnTriggerEnterが呼ばれます。
それぞれ似てますが、引数の型が、CollisionとColliderで違うので注意してください。
どちらも、衝突検出時の、ぶつかった相手を指します。
相手によって、得点を変えたい場合などは、相手が誰かを確認して
処理を分けます(相手の判別は、相手のtagやnameを見ればできます)

private void OnTriggerEnter(Collider other)
{
AudioSource audioSource = gameObject.GetComponent<AudioSource>();
audioSource.PlayOneShot(anySE);
}

なお、AudioSource audioSource の代入は、
void Start()内でやっておけば無駄がないです。
audioSourceの値は通常変わらないので、毎回取得するのは無駄だからです。

質問した人からのコメント

2015/7/10 10:54:31

ご丁寧にありがとうございます♪

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる