Windows phone 8 统一音频剪辑加载错误在WP8上,而不是在Android上

Windows phone 8 统一音频剪辑加载错误在WP8上,而不是在Android上,windows-phone-8,unity3d,unityscript,Windows Phone 8,Unity3d,Unityscript,我为Android和WP8开发了一个使用Unity2D的游戏。这个游戏是关于一个玩家吃橘子的故事。当播放器与橙色碰撞时,它会播放一段声音片段 所以,当你第一次演奏时,没有关系,所有的声音都演奏得很好。然后,当您选择“转到菜单”选项重新开始关卡时,游戏会在第一次碰撞时崩溃。如果然后选择“菜单”,并重新加载标高,则效果良好。 所以它一次运行良好,一次失败,一次运行良好,然后继续运行 这种错误发生在WP8中,而不是Android中 WP8中存在此代码的问题: void OnTriggerEnter2D

我为Android和WP8开发了一个使用Unity2D的游戏。这个游戏是关于一个玩家吃橘子的故事。当播放器与橙色碰撞时,它会播放一段声音片段

所以,当你第一次演奏时,没有关系,所有的声音都演奏得很好。然后,当您选择“转到菜单”选项重新开始关卡时,游戏会在第一次碰撞时崩溃。如果然后选择“菜单”,并重新加载标高,则效果良好。 所以它一次运行良好,一次失败,一次运行良好,然后继续运行

这种错误发生在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为空

我不明白为什么itemSoundClip有时会为空

这是个例外

    $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);          

可能在实例化ocurrs时,项目无法加载剪辑?

在我的unity项目中,我在WP8中播放声音:

public AudioClip coinCollect;
void OnTriggerEnter(Collider other)
{

    if (other.gameObject.name == "coin_gold")
    {
        AudioSource.PlayClipAtPoint(coinCollect, other.gameObject.transform.position,1);
        gold++;

        Destroy(other.gameObject);
    }
}

在Unity Inspector中,我添加了我的声音

我找到了一个解决方案。如果itemClipSound的变量为null,那么我将使用此函数通过资源加载声音

if (itemSoundClip == null)
    itemSoundClip = (AudioClip) Resources.Load("cogerItem");

我也是。我通过inspector添加到一个公共变量调用itemSoundCliptry,以将构建更改为主配置,而不是调试:谢谢,但没有帮助,错误与音频质量无关,错误是audioClip变量有时为null,所以它不使用inspector中配置的声音。您使用的音频格式是什么?您是否尝试了其他格式确定,因此,当您选择“转到菜单”选项重新启动该级别时,我可以查看您的代码吗?