Windows Phone的Unity应用程序崩溃

本文关键字:应用程序 崩溃 Unity Phone Windows | 更新日期: 2023-09-27 17:59:02

我在Unity for Windows Phone中编写了非常简单的应用程序。

水族馆背景、气泡(粒子系统)和鱼类从左到右、从右到左移动。

我将应用程序免费发布到Windows Phone应用商店,报告中有许多崩溃。

我可以导出的堆栈跟踪:

App: AquariumInPhone
OS version: 8.0
Problem function: Unknown
Exception type: c0000005
30-day crash count: 23
Stack trace:
Frame    Image          Function                             Offset        
0        ntdll          RtlpWaitOnCriticalSection            0x0000007e    
1        ntdll          RtlpEnterCriticalSectionContended    0x00000060    
2        unityplayer                                         0x002ef5ac

这是一个非常简单的应用程序,但会崩溃:(

向左移动的鱼有代码:

using UnityEngine;
public class Fish1 : MonoBehaviour {
    float speed = 0.0032f;
    Vector3 startPoint;
    Vector3 currentPosition;
    System.Random r = new System.Random ();
    void Start()
    {    
        startPoint = transform.position;
        currentPosition = transform.position;
    }
    void Update ()
    {
        if (Camera.main.WorldToViewportPoint(transform.position).x < -0.2f)
        {
            int newY = r.Next(0, 5);
            if(r.Next(0, 2) == 0)
                newY = -newY;
            Vector3 pos = new Vector3(12.0f, (float)newY, 0.0f);
            currentPosition = pos;
            transform.position = currentPosition;
        }
        else
        {
            currentPosition.x--;
            transform.position += (currentPosition + startPoint) * speed * Time.deltaTime;
        }
    }
}

向右移动的鱼有代码:

using UnityEngine;
public class Fish2 : MonoBehaviour {
float speed = 0.005f;
Vector3 startPoint;
Vector3 currentPosition;
System.Random r = new System.Random ();
void Start()
{    
    startPoint = transform.position;
    currentPosition = transform.position;
}
void Update ()
{
    if (Camera.main.WorldToViewportPoint(transform.position).x > 1.2f)
    {
        int newY = r.Next(0, 5);
        if(r.Next(0, 2) == 0)
            newY = -newY;
        Vector3 pos = new Vector3(-12.0f, (float)newY, 0.0f);
        currentPosition = pos;
        transform.position = currentPosition;
    }
    else
    {
        currentPosition.x++;
        transform.position += (currentPosition + startPoint) * speed * Time.deltaTime;
    }
}
}

崩溃的原因是什么?我该怎么解决这个问题?

Greets,David

Windows Phone的Unity应用程序崩溃

因为问题似乎与Unity引擎本身有关,所以最好将您的问题发布在Unity支持论坛上。开发人员正在关注论坛,更有可能帮助您。

这可能是一些有问题的设置,甚至是引擎中的一个错误。例如,我有一个Windows应用商店的应用程序,其中只有一个场景会崩溃。在我的情况下,崩溃只发生在我使用开发构建设置时,并且在执行代码之前就崩溃了,所以最终我的代码没有问题。