Ошибка загрузки аудиоклипа Unity на WP8, а не на AndroidC#

Место общения программистов C#
Anonymous
Ошибка загрузки аудиоклипа Unity на WP8, а не на Android

Сообщение Anonymous »

Я разработал игру с использованием Unity 2d для Android и WP8. В игре рассказывается об игроке, который проходит уровень и ест апельсин. Когда плеер сталкивается с апельсином, воспроизводится звуковой клип.

Итак, когда вы играете в первый раз, ничего страшного, все звуки воспроизводятся хорошо. Затем, когда вы выбираете опцию «Перейти в меню», чтобы начать уровень заново, игра вылетает при первом столкновении. Если затем вы выбрали меню и перезагрузили уровень, все работает нормально.
Таким образом, один раз он работает хорошо, затем один раз выходит из строя, затем один раз работает хорошо, и так далее.

Эта ошибка возникает в WP8, а не в Android.

Проблема в WP8 с этим кодом:

Код: Выделить всё

void OnTriggerEnter2D(Collider2D collider){
if (collider.tag == "Player") {
NotificationCenter.DefaultCenter ().PostNotification (this, "IncrementarPuntos", this.puntosGanados);
AudioSource.PlayClipAtPoint (itemSoundClip, Camera.main.transform.position, itemSoundVolume);
Destroy (this.gameObject);
}

}
строка с ошибкой

Код: Выделить всё

AudioSource.PlayClipAtPoint (itemSoundClip, Camera.main.transform.position, itemSoundVolume);
потому что itemSoundClip имеет значение null.

Я не понимаю, почему itemSoundClip иногда имеет значение null.

это исключение

Код: Выделить всё

    $exception  {System.NullReferenceException: Object reference not set to an instance of an object.
at UnityEngine.AudioSource.PlayClipAtPoint(AudioClip clip, Vector3 position, Single volume)
at Item.OnTriggerEnter2D(Collider2D collider)
at Item.$Invoke0(Int64 instance, Int64* args)
at UnityEngine.Internal.$MethodUtility.InvokeMethod(Int64 instance, Int64* args, IntPtr method)} System.Exception {System.NullReferenceException}
Что-то важное, что нужно знать.

Мой оранжевый предмет — сборный. У этого элемента есть скрипт, с помощью которого я добавляю звук клипа (itemSoundClip)

В моей сцене я использую скрипт-генератор, который берет этот оранжевый элемент и создает его экземпляры в случайное время с этой строкой

Код: Выделить всё

Instantiate (obj [Random.Range (0, obj.Length)], transform.position, Quaternion.identity);
Может быть, когда происходит создание экземпляров, элемент не может загрузить клип?

Подробнее здесь: https://stackoverflow.com/questions/280 ... on-android

Вернуться в «C#»