gpt4 book ai didi

c# - Unity 移动设备 30fps 锁定

转载 作者:行者123 更新时间:2023-11-30 14:06:32 25 4
gpt4 key购买 nike

从昨天开始,我的 unity 游戏在 Android 设备上被锁定为 30fps。在它像 150fps 之前......我禁用了垂直同步。这是我昨天添加的唯一脚本:

public static class SaveLoadProgress {

public static void Save()
{
LevelManager levelManager = GameObject.Find ("GameManager").GetComponent<LevelManager> ();
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Create (Application.persistentDataPath + "/savedProgress.1912");
bf.Serialize(file, levelManager.levelReached);
file.Close();
}

public static void Load()
{
LevelManager levelManager = GameObject.Find ("GameManager").GetComponent<LevelManager> ();
if(File.Exists(Application.persistentDataPath + "/savedProgress.1912"))
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(Application.persistentDataPath + "/savedProgress.1912", FileMode.Open);
levelManager.levelReached = (int)bf.Deserialize(file);
file.Close();
}
}
}

我不认为这可能是问题所在。我将其添加到 GameManager 中:

    void Awake()
{
Application.targetFrameRate = -1;
QualitySettings.vSyncCount = 0;
}

探查器显示:

https://i.gyazo.com/33a4f6d2f87899568472b1f890bca1ec.png

我应该怎么做才能从 30fps 解锁它?

最佳答案

默认情况下,Unity 会根据当前平台锁定特定值的 fps。 Documentation表示 Android 的默认值为 30,大多数 Android 设备都使用该值。它还说:

The default targetFrameRate is a special value -1, which indicates that the game should render at the platform's default frame rate.

如文章中所述,移动设备为 30。

此外,在编辑器中运行游戏时,您可以拥有尽可能多的 fps,它可能是 150 或更多,但超过 60(iPhone 和某些 Android 的最大值)是非常糟糕的做法。如果超过 60 fps,您实际上看不到差异,因为设备的显示器实际上无法每秒渲染超过 60 帧,但它会占用电池和 CPU 资源,所有这些计算(对于额外的 60+ fps)都是无用的甚至很糟糕。

要使您的 fps 超过 30,您可以像在代码中那样将其设置为 60:

Application.targetFrameRate = 60;

此外,垂直同步在移动设备上大多不起作用,因此您无需为此烦恼。

关于c# - Unity 移动设备 30fps 锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47031279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com