【问题标题】:How can I run a "headless" (no GUI) Unity3D game inside a C# program?如何在 C# 程序中运行“无头”(无 GUI)Unity3D 游戏?
【发布时间】:2017-03-10 14:25:37
【问题描述】:

我只想执行游戏的模型部分,而不需要任何形式的 GUI。

因此,我会从 Unity3D 实例化一些类,以某种方式安排它们,以任何方式“启动”它们,并定期读取游戏内组件的状态,或者从它们接收更新事件。

目前我已经有了Unity DLLs available with a NuGet Package,但我不知道如何从这里继续:

public class HelloUnity3D
{
    void run()
    {
        var myGame = new UnityEngine.MonoBehaviour();

        //myGame.WhatNow(?)
    }
}

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    不,这是不可能的。

    AFAIK,MonoBehaviour 由 Unity3D 的编辑器或播放器(播放引擎)执行 - 您可以在 Windows 上的 unity3d_install_dir\Editor\Data\PlaybackEngines 中找到它们。

    因此,如果您想“仅执行游戏的模型部分”,则必须编写仅建模播放引擎。但我认为如果不访问 Unity3D 的源代码就无法做到这一点。

    但可以运行 MonoBehaviour 代码而不运行需要 Unity3D 播放引擎的代码。

    【讨论】:

    • 感谢您的回答!其实我最感兴趣的是物理学(重力、碰撞检测等)。你认为我可以创建某种场景,然后从手工制作的游戏循环中手动更新它吗?
    • 是的。只需在 Unity 编辑器中执行此操作即可。见docs。 Unity3D 有很多关于物理的教程。你可能也对existing physics-related projects on the asset store感兴趣。
    猜你喜欢
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 2018-01-01
    • 2022-10-17
    相关资源
    最近更新 更多