c# - 如何加快统一项目的运行?

标签 c# python unity3d

你好,我正在用自动驾驶仪进行飞行模拟,所以我在 unity 中创建了模拟,在 python 中创建了自动驾驶仪,但现在如果我想训练模型,我需要在一次迭代中等待 50 小时的训练过程,所有这是由于场景渲染的统一性(“飞机从说 (500,500,500) 到 (700,500,350) 所需的实际时间,所以我需要加快游戏速度。

我只试过运行代码,但我不知道该怎么做,也不知道它是否会因为固定更新而工作。

我只想知道一种加速统一场景的方法。

最佳答案

您可以使用不同的 Time.timeScale通过脚本:

Time.timeScale = 10;

让您的游戏运行速度比实时 10 倍。

If you lower timeScale it is recommended to also lower Time.fixedDeltaTime by the same amount.

所以在第一行之后的示例中也添加

Time.fixedDeltaTime = 0.02f * Time.timeScale;

我会简单地在像这样的组件中这样做

public class TimeScaler : MonoBehaviour
{
    // adjust in Inspector
    public float initialTimeScale = 1.0f;

    private void Start()
    {
        SetTimeScale(initialTimeScale);
    }

    // Can now also be called rom other scripts
    public void SetTimeScale(float scale)
    {
        Time.timeScale = scale;
        Time.fixedDeltaTime = 0.02f * Time.timeScale;
    }
}

这样您就可以通过 Inspector 简单地调整比例,或者稍后从其他脚本中重新使用该组件,例如想要在某些时刻来回更改 timeScale。

关于c# - 如何加快统一项目的运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56438835/

相关文章:

python - Excel:如何执行按位计数?

python - 为什么实习全局字符串值会导致每个多处理进程使用更少的内存?

python - 如何在循环中使用 with_dict 编写 Ansible 任务 (with_items)

c# - 从 Random.Range() 中排除值?

unity3d - unity 3d 的包管理器未显示 ProGrids 模块

c# - 任务 - 属性分配

c# - 需要帮助序列化多个对象以使用 C# 缓存到 redis

c# - 以编程方式定义脚本的执行顺序

c# - 8 字节数组返回长(C# 到 C++)

c# - 编译器只会编译可以执行的代码吗?