我想让我的Unity游戏看起来已经崩溃(无响应的应用程序崩溃,而不是代码异常崩溃)。
您可以调用Windows API中的某些功能来模拟它。
我还看过一款名为" Pony Island"之前这样做,所以它当然是可能的。但是,我没有副本,也不能反编译蒸汽游戏。
如果有办法实际挂起程序,同时仍然可以随时将其恢复,那么解决方案更可取,这似乎不太可能。
要清楚,我希望它看起来合法,所以我更喜欢使用windows API来改变窗口颜色并生成弹出窗口,而不是将它们统一为GUI对象或类似的东西。我也不太关心交叉兼容性,因为Mac API似乎难以实现,甚至更难测试(在Windows机器上),并且很可能不会与尽可能多的hacky功能兼容正如Windows API一样。
答案 0 :(得分:-1)
安全地执行此操作的最佳方法是运行一些脚本设置time.timeScale = 0
- 有效地“冻结”游戏,同时播放窗口“错误”声音效果。
(注意:您可能还必须暂停此脚本中的音频源和粒子发射器,我还没有使用时间刻度,因为我不确定它是否会影响这些)
我知道你建议不要使用UGUI但是在整个屏幕上没有放置源的图像,它的颜色和alpha调整也可以非常容易地模拟“冻结屏幕”。
您还可以查看强制“恢复”/更改窗口全屏模式的方法(如果以全屏模式播放)
答案 1 :(得分:-2)
我会尝试使用Thread.Sleep(int)来实现这一点 所以在主线程中,我会调用它来冻结整个统一循环一段时间,例如5秒= 5000毫秒
并检查是否要继续崩溃。例如,但没有经过测试,(我的办公室环境没有统一性)
小心这一点,因为这会将它冻结为真实的,你仍然可以在冻结时进行任何操作。
public class Crasher : MonoBehaviour
{
public bool isCrash = false;
//The crash in seconds
public float crashDuration = 5;
void Update ()
{
if (isCrash)
{
//Freeze the applicaion for amount of milliSeconds
System.Threading.Thread.Sleep(crashDuration * 1000);
}
}
}