You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MacOS上通过Python代码打开Unity/C#项目?

解决MacOS下Python调用Unity的问题

一、修复基础调用错误

你当前的代码错误在于把列表UNITY直接拼进字符串,导致命令格式混乱。正确的做法是把所有参数放进列表传递给subprocess.run,避免字符串拼接的问题:

import subprocess

# 正确的参数列表写法
UNITY_OPEN_CMD = [
    "/usr/bin/open",
    "-W",  # 等待应用退出
    "-n",  # 打开新实例
    "-a", "Unity.app",
    "--args",  # 传递参数给Unity的关键标记
    "-projectPath", "/Users/graphic/Documents/GitHub/proj"
]

subprocess.run(UNITY_OPEN_CMD, check=True)

注意--args是open命令用来区分自身参数和目标应用(Unity)参数的关键,没有它的话,-projectPath会被当成open的参数,而非Unity的,这会直接导致Unity无法识别项目路径,触发文件找不到的错误。

二、后台批处理模式实现(签名自动化)

如果要后台执行签名这类自动化操作,直接调用Unity的可执行文件比用open命令更可靠,同时启用批处理模式:

import subprocess

# 替换为你实际的Unity版本路径,Unity Hub安装的版本通常在此目录下
UNITY_EXECUTABLE = "/Applications/Unity/Hub/Editor/2022.3.1f1/Unity.app/Contents/MacOS/Unity"

# 批处理参数逻辑和Windows一致,路径改用MacOS格式
cmd = [
    UNITY_EXECUTABLE,
    "-quit",  # 任务完成后自动退出
    "-batchmode",  # 后台无界面运行
    "-projectPath", "/Users/graphic/Documents/GitHub/proj",
    "-executeMethod", "BuildScript.BuildAll",
    "-logFile", "/Users/graphic/Documents/unity_build.log"  # 输出日志方便排查错误
]

try:
    subprocess.run(cmd, check=True, capture_output=True, text=True)
    print("Unity自动化任务执行成功")
except subprocess.CalledProcessError as e:
    print(f"执行失败,错误信息:{e.stderr}")

路径注意事项:

  • Unity可执行文件路径:需替换为你安装的具体Unity版本路径,格式为/Applications/Unity/Hub/Editor/[版本号]/Unity.app/Contents/MacOS/Unity。
  • 项目路径必须用绝对路径,避免相对路径引发的文件找不到问题。

三、解决权限不足问题

  1. PyCharm权限配置:
    • 在系统偏好设置→安全性与隐私→隐私→完全磁盘访问权限中,添加PyCharm,确保它能访问项目文件夹和Unity安装目录;或者右键点击PyCharm图标选择「打开」,首次运行时允许权限请求。
  2. 文件权限检查:
    • 确保项目文件夹和Unity可执行文件有足够的读写/执行权限:
      chmod -R 755 /Users/graphic/Documents/GitHub/proj
      chmod +x /Applications/Unity/Hub/Editor/[版本号]/Unity.app/Contents/MacOS/Unity
      
  3. 避免sudo运行:尽量不要用sudo启动PyCharm或脚本,否则可能导致文件权限混乱。

四、打开C#解决方案(.sln文件)

如果要直接打开Unity项目的C#解决方案,用open命令即可:

import subprocess

SLN_PATH = "/Users/graphic/Documents/GitHub/proj/YourProject.sln"
subprocess.run(["/usr/bin/open", "-n", SLN_PATH], check=True)

这会调用系统默认的IDE(如Rider、Visual Studio for Mac)打开解决方案。

内容的提问来源于stack exchange,提问作者suMmGuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:00:23