【问题标题】:Unity Command Line -- executeMethod and logFile not working?Unity 命令行 -- executeMethod 和 logFile 不起作用?
【发布时间】:2019-02-19 03:49:33
【问题描述】:

我正在尝试开始使用 Unity 命令行参数,并尝试简单地创建一个写入文件的编辑器函数。如果我从 Unity 中运行该函数,它可以工作并且我可以成功查看文件的内容,但是当我尝试从命令提示符调用它时,它不会在控制台中给出任何错误消息(甚至如果我将函数的名称更改为不存在的名称,它也不会出现任何错误。所以如果可能的话,获得错误标准输出也会很酷)。这是我的基本统一类(在统一内调用时有效):

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.Networking;
using System.IO;

public class CobysBundleBuilder {
    public static void CobyBuildIt() {
        var path = "Assets/test.txt";
        StreamWriter writer = new StreamWriter(path, true);
        writer.WriteLine("Hi there!");
        writer.Close();
        Debug.Log("ASDFGG");
        MonoBehaviour.print("wow");
    }
}

这是我从命令行调用的命令,我什至没有看到创建的日志文件:

C:\"Program Files"\Unity\Hub\Editor\2019.1.0b1\Editor\Unity.exe -batchmode -quit -projectPath C:\Users\me\OneDrive\Documents\"totally empty"\"New Unity Project" -executeMethod CobysBundleBuilder.CobyBuildIt -logFile C:\Users\me\OneDrive\Desktop

首先,放置在我的资产文件夹 (test.txt) 中的所需文件没有被写入(就像从 Unity 中调用时一样),并且日志文件也没有出现在我的桌面。

我错过了一些基本的东西吗?我只是想测试 Unity 命令行参数并获得一些基本的工作。

谢谢,如果有人知道如何解决它。

附:

也有可能 projectPath 参数可能不起作用,因为当我在没有 -batchmode 和 -quit 的情况下调用命令时,它只会打开带有我所有项目列表的统一集线器,但不会打开作为参数传递的具体项目。

编辑: 我尝试将脚本放在我的 Assets/Editor 文件夹中并检查 AppData 中的 Editor.Log 文件,这就是它所说的(我更改了函数 BTW):

LICENSE SYSTEM [2019219 0:41:36] Next license update check is after 2018-08-28T23:32:35


LICENSE SYSTEM [2019219 0:41:36] 00342-20100-00000-AAOEM != 00342-20108-34498-AAOEM

Built from '2019.1/staging' branch; Version is '2019.1.0b1 (83b3ba1f99df) revision 8631226'; Using compiler version '191627012'
OS: 'Windows 10  (10.0.0) 64bit' Language: 'en' Physical Memory: 11743 MB
BatchMode: 1, IsHumanControllingUs: 0, StartBugReporterOnCrash: 0, Is64bit: 1, IsPro: 0
[Package Manager] Server::Start -- Port 54964 was selected

 COMMAND LINE ARGUMENTS:
C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Unity
-batchmode
-quit
-projectPath
C:\Users\me\OneDrive\Documents\totally empty
-executeMethod
MyScript.MyMethod
Successfully changed project path to: C:\Users\me\OneDrive\Documents\totally empty
C:/Users/me/OneDrive/Documents/totally empty
Using Asset Import Pipeline V1.
DisplayProgressbar: Unity Package Manager
Loading GUID <-> Path mappings...0.000110 seconds
Loading Asset Database...0.016790 seconds
AssetDatabase consistency checks...0.049615 seconds
[Package Manager] Done resolving packages in 0.74s seconds
[Package Manager] Registering 38 packages:
[Package Manager]  * Package :  com.unity.ads@2.0.8
    (location: C:\Users\me\OneDrive\Documents\totally empty\Library\PackageCache\com.unity.ads@2.0.8)
[Package Manager]  * Package :  com.unity.analytics@3.2.2
    (location: C:\Users\me\OneDrive\Documents\totally empty\Library\PackageCache\com.unity.analytics@3.2.2)
[Package Manager]  * Package :  com.unity.collab-proxy@1.2.15
    (location: C:\Users\me\OneDrive\Documents\totally empty\Library\PackageCache\com.unity.collab-proxy@1.2.15)
[Package Manager]  * Package :  com.unity.package-manager-ui@2.1.1
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.package-manager-ui)
[Package Manager]  * Package :  com.unity.purchasing@2.0.1
    (location: C:\Users\me\OneDrive\Documents\totally empty\Library\PackageCache\com.unity.purchasing@2.0.1)
[Package Manager]  * Package :  com.unity.textmeshpro@1.3.0
    (location: C:\Users\me\OneDrive\Documents\totally empty\Library\PackageCache\com.unity.textmeshpro@1.3.0)
[Package Manager]  * Package :  com.unity.timeline@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.timeline)
[Package Manager]  * Package :  com.unity.xr.legacyinputhelpers@1.0.0
    (location: C:\Users\me\OneDrive\Documents\totally empty\Library\PackageCache\com.unity.xr.legacyinputhelpers@1.0.0)
[Package Manager]  * Package :  com.unity.modules.ai@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.ai)
[Package Manager]  * Package :  com.unity.modules.animation@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.animation)
[Package Manager]  * Package :  com.unity.modules.assetbundle@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.assetbundle)
[Package Manager]  * Package :  com.unity.modules.audio@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.audio)
[Package Manager]  * Package :  com.unity.modules.cloth@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.cloth)
[Package Manager]  * Package :  com.unity.modules.director@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.director)
[Package Manager]  * Package :  com.unity.modules.imageconversion@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.imageconversion)
[Package Manager]  * Package :  com.unity.modules.imgui@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.imgui)
[Package Manager]  * Package :  com.unity.modules.jsonserialize@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.jsonserialize)
[Package Manager]  * Package :  com.unity.modules.particlesystem@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.particlesystem)
[Package Manager]  * Package :  com.unity.modules.physics@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.physics)
[Package Manager]  * Package :  com.unity.modules.physics2d@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.physics2d)
[Package Manager]  * Package :  com.unity.modules.screencapture@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.screencapture)
[Package Manager]  * Package :  com.unity.modules.terrain@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.terrain)
[Package Manager]  * Package :  com.unity.modules.terrainphysics@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.terrainphysics)
[Package Manager]  * Package :  com.unity.modules.tilemap@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.tilemap)
[Package Manager]  * Package :  com.unity.modules.ui@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.ui)
[Package Manager]  * Package :  com.unity.modules.uielements@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.uielements)
[Package Manager]  * Package :  com.unity.modules.umbra@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.umbra)
[Package Manager]  * Package :  com.unity.modules.unityanalytics@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.unityanalytics)
[Package Manager]  * Package :  com.unity.modules.unitywebrequest@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.unitywebrequest)
[Package Manager]  * Package :  com.unity.modules.unitywebrequestassetbundle@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.unitywebrequestassetbundle)
[Package Manager]  * Package :  com.unity.modules.unitywebrequestaudio@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.unitywebrequestaudio)
[Package Manager]  * Package :  com.unity.modules.unitywebrequesttexture@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.unitywebrequesttexture)
[Package Manager]  * Package :  com.unity.modules.unitywebrequestwww@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.unitywebrequestwww)
[Package Manager]  * Package :  com.unity.modules.vehicles@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.vehicles)
[Package Manager]  * Package :  com.unity.modules.video@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.video)
[Package Manager]  * Package :  com.unity.modules.vr@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.vr)
[Package Manager]  * Package :  com.unity.modules.wind@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.wind)
[Package Manager]  * Package :  com.unity.modules.xr@1.0.0
    (location: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.modules.xr)
[Package Manager] Done registering packages in 0.01s seconds
Refreshing native plugins compatible for Editor in 18.94 ms, found 2 plugins.
Preloading 0 native plugins for Editor in 0.00 ms.
Initialize engine version: 2019.1.0b1 (83b3ba1f99df)
GfxDevice: creating device client; threaded=0
Direct3D:
    Version:  Direct3D 11.0 [level 11.1]
    Renderer: AMD Radeon(TM) R7 Graphics (ID=0x9874)
    Vendor:   
    VRAM:     3433 MB
    Driver:   22.19.180.513
Launched and connected shader compiler UnityShaderCompiler.exe after 0.14 seconds
[EnlightenBakeManager] m_Clear = false;
WARNING: Shader Unsupported: 'AR/TangoARRender' - Pass '' has no vertex shader
WARNING: Shader Unsupported: 'AR/TangoARRender' - Setting to default shader.
WARNING: Shader Unsupported: 'Hidden/VideoDecodeOSX' - Pass 'Flip_RGBARect_To_RGBA' has no vertex shader
WARNING: Shader Unsupported: 'Hidden/VideoDecodeOSX' - Setting to default shader.
WARNING: Shader Unsupported: 'Hidden/VideoDecodeAndroid' - Pass 'RGBAExternal_To_RGBA' has no vertex shader
WARNING: Shader Unsupported: 'Hidden/VideoDecodeAndroid' - Setting to default shader.
WARNING: Shader Unsupported: 'Hidden/VideoDecodeML' - Pass 'RGBAExternal_To_RGBA' has no vertex shader
WARNING: Shader Unsupported: 'Hidden/VideoDecodeML' - Setting to default shader.
Initialize mono
Mono path[0] = 'C:/Program Files/Unity/Hub/Editor/2019.1.0b1/Editor/Data/Managed'
Mono path[1] = 'C:/Program Files/Unity/Hub/Editor/2019.1.0b1/Editor/Data/MonoBleedingEdge/lib/mono/unityjit'
Mono config path = 'C:/Program Files/Unity/Hub/Editor/2019.1.0b1/Editor/Data/MonoBleedingEdge/etc'
Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,server=y,suspend=n,address=0.0.0.0:56428
Begin MonoManager ReloadAssembly
Refreshing native plugins compatible for Editor in 0.97 ms, found 3 plugins.
Initializing Extension Manager v2019.1.0 for Unity v2019.1.0b1
Registering precompiled unity dll's ...
Register platform support module: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\PlaybackEngines\windowsstandalonesupport/UnityEditor.WindowsStandalone.Extensions.dll
Register platform support module: C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Data\PlaybackEngines\WebGLSupport/UnityEditor.WebGL.Extensions.dll
Registered in 0.005863 seconds.
Registering platform support modules:
Registered platform support modules in: 0.2405032s.
Native extension for WindowsStandalone target not found
Native extension for WebGL target not found
Refreshing native plugins compatible for Editor in 0.59 ms, found 3 plugins.
Preloading 1 native plugins for Editor in 3.16 ms.
Mono: successfully reloaded assembly
- Completed reload, in  3.308 seconds
Registering precompiled user dll's ...
Registered in 0.082678 seconds.
Platform modules already initialized, skipping
Begin MonoManager ReloadAssembly

我的新 C# 代码几乎相同,但无论如何都在这里:

using UnityEngine;
using UnityEditor;
using System.IO;
public class MyScript {

    public static void MyMethod () {
        var path = "Assets/test.txt";
        StreamWriter writer = new StreamWriter(path, true);
        writer.WriteLine("Hi there!");
        writer.Close();
        Debug.Log ("Here you put your code");
    }
}

所以在我运行命令后 test.txt 文件仍然没有创建。

第二次编辑:我刚刚看到日志文件确实需要是文件名的新答案,然后创建了日志文件!这就是它所说的:

LICENSE SYSTEM [2019219 0:45:54] Next license update check is after 2018-08-28T23:32:35


LICENSE SYSTEM [2019219 0:45:54] 00342-20100-00000-AAOEM != 00342-20108-34498-AAOEM

    Built from '2019.1/staging' branch; Version is '2019.1.0b1 (83b3ba1f99df) revision 8631226'; Using compiler version '191627012'
    OS: 'Windows 10  (10.0.0) 64bit' Language: 'en' Physical Memory: 11743 MB
    BatchMode: 1, IsHumanControllingUs: 0, StartBugReporterOnCrash: 0, Is64bit: 1, IsPro: 0
    [Package Manager] Server::Start -- Port 51774 was selected



        COMMAND LINE ARGUMENTS:
        C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Unity
        -batchmode
        -quit
        -projectPath
        C:\Users\me\OneDrive\Documents\totally empty
        -executeMethod
        MyScript.MyMethod
        -logfile
        C:\Users\me\OneDrive\Desktop\wow.txt
        Successfully changed project path to: C:\Users\me\OneDrive\Documents\totally empty
        C:/Users/me/OneDrive/Documents/totally empty
        Using Asset Import Pipeline V1.
        DisplayProgressbar: Unity Package Manager
        Loading GUID <-> Path mappings...0.000149 seconds
        Loading Asset Database...0.018028 seconds
        AssetDatabase consistency checks...0.041902 seconds

所以它似乎正在打开项目,但仍未创建 test.txt 文件,因此似乎仍未调用函数 MyScript.MyMethod

【问题讨论】:

  • 查看返回值:echo %errorlevel%
  • @shingo 嗨,谢谢,但我不太擅长 CMD 和批处理命令,我该把它放在哪里?我试着像这样将它添加到命令的末尾(我改变了以前的项目路径但同样的想法):“C:\Program Files\Unity\Hub\Editor\2019.1.0b1\Editor\Unity.exe” -退出 -batchmode -projectPath "C:\Users\me\OneDrive\Documents\totally empty" -execudeMethod Command.Start -logFile C:\Users\eivan\OneDrive\Desktop echo %errorlevel% 但执行后控制台中没有显示它

标签: unity3d


【解决方案1】:

正如文档所说,-logfile 的参数应该是文件名,而您似乎使用了目录名,这可能是原因。

https://docs.unity3d.com/2019.1/Documentation/Manual/CommandLineArguments.html

【讨论】:

  • 您好,谢谢!这解决了一半的问题,尽管您知道为什么该方法没有执行并创建 test.txt 文件吗?
  • 实际上 NVM 我只需要等待几秒钟就可以让 unity 启动,但它确实会创建文本文件,谢谢!!
  • 不过,你知道如何通过命令行从已经运行的统一实例运行命令吗?我的意思是如何在没有 -quit 参数的情况下访问实例,在它启动后? (如果我取出 -quit 然后尝试再次运行该命令,我会收到一个错误,表明该项目的当前实例已经在运行)?
  • 我认为命令行很难。但是由于统一正在运行,您可以通过 C# 脚本执行某些操作。例如创建一个套接字并监听输入命令。
  • hmm 有趣的想法...我的主要最终目标是从我的 node.js 服务器运行统一编辑器,并从浏览器运行命令发送到服务器上上传的统一编辑器,所以你只是给了我启动套接字的想法(例如,使用与 node.js 配合良好的混合套接字库),并从 C# 命令中启动套接字连接,一旦它从命令行运行,然后在node.js 方面,在“生成”unity.exe 之后,等待 websocket 连接,然后像这样来回发送命令......所以现在我有另一个问题,但相关:
猜你喜欢
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多