Итак, когда вы играете в первый раз, ничего страшного, все звуки воспроизводятся хорошо. Затем, когда вы выбираете опцию «Перейти в меню», чтобы начать уровень заново, игра вылетает при первом столкновении. Если затем вы выбрали меню и перезагрузили уровень, все работает нормально.
Таким образом, один раз он работает хорошо, затем один раз выходит из строя, затем один раз работает хорошо, и так далее.
Эта ошибка возникает в 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.
это исключение
Код: Выделить всё
$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