Projeny-YAML设置参考文档(三)

Projeny.yaml 参考

“Projeny.yaml”文件包含Projeny的常规设置,包括Unity等工具的位置,放置日志输出的位置等。

请注意,像Projeny中的所有配置文件一样,Projeny.yaml使用 YAML标准进行定义。

当使用prj命令从命令行运行Projeny时,它会从以下位置加载所有配置文件:

  • [Current directory]/Projeny.yaml
  • [User Home Directory]/Projeny.yaml - 例如,如果您的用户帐户名称是John: C:/Users/John/Projeny.yaml

通常,您将在这两个位置配置文件。您的主目录中的配置文件对于定义Projeny有时运行的工具(如Visual Studio和Unity)的路径特别有用。

如果您遵循说明来创建一个新的基于Projeny的项目集,您会发现默认的Projeny.yaml文件是使用以下内容:

PathVars:
    UnityProjectsDir: '[ConfigDir]/UnityProjects'
    LogPath: '[ConfigDir]/PrjLog.txt'

这是Projeny所需的绝对最小配置。 (实际上,你不需要严格地定义“LogPath”,但是如果你想要详细的错误信息,那么每次在这个Projeny.yaml目录下运行prj命令时,PrjLog.txt文件将更新更详细的信息)

以下是配置设置的完整列表。请注意,您不需要包括大多数这些,因为它们具有合理的默认值,但它们列在此处供参考。注意:可以通过在“#”字符前面加上行来添加注释。

#如果你使用命令行很多,定义一个可能是有用的 
#别名为您正在更改的常见项目。 
#这些从演示项目采取。 
#运行`prj -p am`和运行`prj -p AllMovers是一样的
ProjectAliases:
    am: AllMovers
    cm: CubeMover
    sm: SphereMover

# 这里的给定项目将由`prj`命令行使用工具,每当`-p`选项不包括在内
DefaultProject: AllMovers

# 这是由projeny使用的路径的集合 
# 您也可以在这里定义自己的变量,并在任何配置文件中使用它们 
# 另请注意,您可以在这里使用环境变量,例如:[SOME_ENVIRONMENT_VARIABLE]
PathVars:
    # 此设置是必需的
    # 这将决定projeny在哪里寻找Unity项目
    UnityProjectsDir: '[ConfigDir]/UnityProjects'

    # 此设置对于许多不同的Projeny操作是必需的 
    # 所以Projeny知道如何运行Unity。默认情况下会这样     
    # 猜猜以下路径
    UnityExePath: 'C:/Program Files/Unity/Editor/Unity.exe'

    # 当使用命令行选项`-b`或 `bf`或`bcs`(有关这些的详细信息,请参阅命令行参考部分)
    # 它用于构建可视化工作室解决方案文件     
    # 默认情况下,它将假定以下路径,除非您自己指定
    MsBuildExePath: 'C:/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe'

    # 当UseDevenv设置(见下文)设置为true时,此值是必需的
    VisualStudioCommandLinePath: 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/devenv.com'

    # Package Manager中的“Open Solution”按钮需要此值,,
    # 或等效的命令行选项`prj -ocs`
    VisualStudioIdePath: 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/devenv.exe'

    # 该值将确定`prj`命令输出的位置 
    # 详细的记录信息
    LogPath: '[ConfigDir]/PrjLog.txt'

Console:
    # 如果您使用支持多种颜色的控制台,请设置这是true,
    # 所以警告是黄色的,错误是红色的等
    UseColors: False

# 定制发布源也可以在`Projeny.yaml`中指定 
# 您希望“Releases”列表不仅包含Asset Store缓存中的项目
ReleaseSources:
    - LocalFolder:
        Path: 'C:/MyUnityPackages'

    # 请注意,您可以指定多个本地文件夹
    - LocalFolder:
        Path: 'G:/NetworkSharedUnityPackages'

    # 请注意,您可以指定多个文件服务器
    - FileServer:
        ManifestUrl: 'http://localhost:8092/ProjenyReleaseManifest.txt'

Compilation:
    # 使用命令行选项`-b`或`bf`时使用该值或`bcs`(有关详细信息,请参阅命令行参考部分)
    # 默认情况下,Projeny将使用MsBuild(使用MsBuildExePath定义上面)     
    # 构建visual studio解决方案。     
    # 但是,有些人们可能更喜欢使用devenv.exe,因为与msbuild不同     
    # 这样做可以保证与建筑物使用相同的行为     
    # Visual Studio GUI。所以如果你想使用devenv.exe,     
    # 将此设置为true,然后确保指定路径变量     
    # 'VisualStudioCommandLinePath'以及上面的PathVars部分
    UseDevenv: False

SolutionGeneration:
    # 这将用于生成的visual studio项目的“DefaultNamespace”字段
    RootNamespace: MyCompanyName

Unity:
    # 将此选项包含在默认的新项目中,以使用64位窗口来构建它们还是32位
    Win64IsDefault: True

ProjenyProject.yaml 参考

在大多数情况下,您可以使用Unity内的Package Manager编辑“ProjenyProject.yaml”文件。但是,Package Manager GUI不包括所有内容(例如,解决方案文件夹无法从包管理器配置)

请注意,像Projeny中的所有配置文件一样,ProjenyProject.yaml是使用 YAML标准定义的。

请注意,您可以定义多个“ProjenyProject.yaml”文件,结果将其全部应用于项目。 Projeny找到这个文件有4个地方。例如,给定一个名为“Foo”的项目,这些位置如下所示:

  1. UnityProjects/Foo/ProjenyProject.yaml
  2. UnityProjects/Foo/ProjenyProjectCustom.yaml
  3. UnityProjects/ProjenyProject.yaml
  4. UnityProjects/ProjenyProjectCustom.yaml

这些都遵循相同的格式。 (3)和(4)由所有项目自动使用,所以放置要包含在任何地方的软件包是一个很好的选择。

(2)和(4)应该被源代码控制忽略,是添加用户特定包的一个方便的地方。例如,同一项目中的不同开发人员可能对某些统一插件(例如自定义统一控制台,用于在场景之间切换的弹出窗口等)可能具有不同的偏好设置。因此可以使用“ProjenyProjectCustom.yaml”文件,以个别方式添加包。

“ProjenyProject.yaml”的格式如下:

AssetsFolder:
    - {PackageName}
    - {PackageName}

PluginsFolder:
    - {PackageName}
    - {PackageName}
    - {PackageName}

SolutionProjects:
    - {PackageName}
    - /{PackageNamePattern}
    - /{PackageNamePattern}
    - {PackageName}

SolutionFolders:
    {FolderName}: /{PackageNamePattern}
    {FolderName}: /{PackageNamePattern}

PackageFolders:
    - {DirectoryPath}
    - {DirectoryPath}

TargetPlatforms:
    - Windows
    - WebPlayer
    - Android
    - WebGL
    - OSX
    - Linux
    - iOS

Where:
* {PackageName} 表示在一个“PackageFolders”目录中的目录的名称
* {PackageNamePattern} 表示一个python正则表达式,用于匹配“UnityPackages”目录中的多个包

请注意以下几点:
* “AssetsFolder”类别下方列出的软件包将直接放置在项目的“Assets /”目录下
* “PluginsFolder”类别下方列出的软件包将直接放置在项目的“Assets / Plugins”目录下
* 在“SolutionProjects”类别下面的所有软件包将生成自己的.csproj文件,当运行Project - > Update C#Project或在程序包管理器中点击’Update Solution`按钮时
* 请注意,您也可以使用正则表达式,而不是显式列出完整的包名称。例如,如果要为项目中的每个包创建一个C#项目,则添加符合所有内容的“/.*”行
* 您还可以选择将文件夹添加到生成的解决方案中,以组织相关项目在一起。每个文件夹都有一个正则表达式,用于过滤完整的项目列表,并且还必须使用正斜杠
* 包文件中使用的所有正则表达式遵循为python定义的正则表达式规则(更多详细信息,请参见此处

ProjenyPackage.yaml 参考

请注意,像Projeny中的所有配置文件一样,“ProjenyPackage.yaml”使用 YAML标准进行定义。与项目设置不同,没有用于软件包设置的GUI,因此您必须手动编辑“ProjenyPackage.yaml”文件。

在大多数情况下,您的ProjenyPackage.yaml将简单列出该软件包依赖的其他软件包。它将如下所示:

Dependencies:
    - CubeMover
    - SphereMover

这是从演示项目(在UnityPackages / AllMovers / ProjenyPackage.yaml)。

请注意,此文件是可选的。当没有添加到您的包中时,您的包将被假定为具有零依赖关系。

这里有一些其他的选择不常见的情况。 “ProjenyPackage.yaml”的完整格式如下:

Dependencies:
    - {PackageName}
    - {PackageName}
    - {PackageName}

Extras:
    - {PackageName}
    - {PackageName}

FolderType: {FolderType}

Platforms:
    - {PlatformName}
    - {PlatformName}
    - {PlatformName}

ForcePluginsDirectory: {True/False}
ForceAssetsDirectory: {True/False}

注意:
* {PackageName} 表示您的UnityPackages目录下的目录的名称。
* 在“Dependencies”或“Extras”下列出的任何包将始终添加到包含此包的每个项目中
* Dependencies和Extras之间的唯一区别是Projeny将为Dependencies下的软件包创建一个csproj依赖关系,而不适用于Extras下的软件包。大多数时候你只想添加到依赖关系,但是在极少数情况下,使用Extras可能会很有用。例如,如果您已经将包的单元测试拆分成自己独立的包,并且您希望始终将其包含在包中,那么可以将它们添加到“其他”列表中。您不想将它们添加到依赖关系中,因为这将创建循环依赖关系,Projeny将显示错误。
* 默认情况下,Projeny将假定您的软件包适用于所有平台。然而,如果设置了“Platforms”列表,Projeny将跳过除所列平台之外的所有平台的此软件包,因此您的软件包目录将仅在这些平台的Unity项目中链接。 {PlatformName}可以是以下之一:
* Windows
* WebPlayer
* Android
* WebGL
* OSX
* Linux
* iOS
* 当设置“ForcePluginsDirectory”时,这将要求包总是放置在“Assets / Plugins / PackageName”下。
* 这是因为某些软件包具有硬编码路径,要求软件包位于特定位置
* ForceAssetsDirectory的行为类似,并且将确保该包将永远放在Assets / PackageName
* FolderType可以设置为以下任一项:
* Normal
* 这是未指定此设置时的默认值
* StreamingAssets
* 包将被放置在Assets / StreamingAssets / YourPackageName
* 这对Unity有特殊的含义 - 有关详细信息,请参阅此处
* WebGL
* 包将被放置在Assets / Plugins / WebGL
* 这对Unity有特殊含义 - 有关详细信息,请参阅此处
* AndroidProject
* 包将被放在Assets / Plugins / Android
* 这对Unity有特殊含义 - 有关详细信息,请参阅此处
* AndroidLibraries
* 包将被放在Assets / Plugins / Android / libs
* 这对Unity有特殊的含义 - 有关详细信息,请参阅此处
* iOS
* 包将被放置在Assets / Plugins / ios
* 这对Unity有特殊含义 - 有关详细信息,请参阅此处

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值