ユニティで制作中のゲームで、矢がプレイヤーにぶつかると音が出るようにしたいのですが、以下のスクリプトを実行しても、音もエラーも出ません。
尚、Play on Awakeのチェックは外しているのですが、チェックを入れると音は出ます(音を出したいタイミングが違うのですが)。
オブジェクトが破壊される所為で音が出ないのかもと思い、Destroy(gameObject);をコメントアウトしてみましたが、それでも音は出ませんでした。
このスクリプトの他の命令はきちんと行えています(矢を破壊するなど)。
他のオブジェクトに付けている音(BGMなど)は普通に出ます(スクリプトから出しているのでなく、Play on Awakeで出しているのですが)。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ArrowCon : MonoBehaviour
{
GameObject player;
void Start() { this.player = GameObject.Find("player"); } void Update() { transform.Translate(0, -0.1f, 0); if (transform.position.y < -5.0f) { Destroy(gameObject); } Vector2 p1 = transform.position; //矢の中心座標 Vector2 p2 = this.player.transform.position; //プレイヤの中心座標 Vector2 dir = p1 - p2; float d = dir.magnitude; float r1 = 0.5f; //矢の半径 float r2 = 1.0f; //プレイヤの半径 if (d < r1 + r2) { GetComponent<AudioSource>().Play(); //音を出したい Destroy(gameObject); } }
}
回答3件
あなたの回答
tips
プレビュー