1

私は2Dゲームを作成していますが、コインがあり、プレーヤーがコインに触れると、コインが消えて音が鳴るようにしようとしています.問題は、コインが消えても音が出ないことです.

using UnityEngine;
using System.Collections;

public class coins : MonoBehaviour {
    static int coin = 0;
    AudioClip coinSound;
    void Start()
    {
        coin = 0;
    }

void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Player")
        {
            coin++; 
            audio.PlayOneShot(coinSound);
            StartCoroutine(Ding());
            Destroy(this.gameObject);

        }
    }
    void OnDisable(){
        PlayerPrefs.SetInt ("coin", coin);

    }
    IEnumerator Ding(){
            yield return new WaitForSeconds (0.4F);
       }
}
4

1 に答える 1

1

破壊は同じオブジェクトで発生するため、実際にサウンドを再生できるように、破壊を遅らせる必要があります。

void OnTriggerEnter2D(Collider2D other)
{
    if(other.tag == "Player")
    {
        coin++; 
        StartCoroutine(Ding());  
    }
}

IEnumerator Ding()
{
    audio.PlayOneShot(coinSound);
    yield return new WaitForSeconds(5);
    Destroy(gameObject);
}
于 2015-01-02T06:28:45.160 に答える