国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Unity實(shí)戰(zhàn)】Jenkins與自定義命令行參數(shù)

這篇具有很好參考價值的文章主要介紹了【Unity實(shí)戰(zhàn)】Jenkins與自定義命令行參數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

Unity是一款功能強(qiáng)大的游戲開發(fā)引擎,它提供了許多方便開發(fā)者使用的功能和工具。其中一個非常有用的功能是Unity命令行參數(shù)。通過使用命令行參數(shù),開發(fā)者可以在啟動Unity時自定義一些行為和設(shè)置,從而更好地管理和調(diào)試項目。

使用Unity命令行參數(shù)的好處是,它可以幫助開發(fā)者更好地管理和調(diào)試項目。通過在命令行中指定參數(shù),我們可以自動化一些常見的任務(wù),例如構(gòu)建項目、執(zhí)行測試、導(dǎo)出資源等。這不僅可以提高開發(fā)效率,還可以減少人為錯誤的發(fā)生。

當(dāng)然有些時候我們需要自己定義一個或者多個命令行參數(shù),比如我們要啟動一個服務(wù)器構(gòu)建、接入一個CI/CD,人手動操作肯定費(fèi)時費(fèi)力,而且不熟悉Unity編輯器的新手難免會出錯。

自帶參數(shù)

首先,在自定義參數(shù)前,我們先看一下自帶的命令行參數(shù)是否就能滿足我們的要求。在啟動Unity編輯器時,我們可以在命令行中添加參數(shù)來改變Unity的行為。這可以通過在命令行中輸入"Unity.exe -參數(shù)名 參數(shù)值"來實(shí)現(xiàn)。下面是一些常見的Unity命令行參數(shù)的示例:

1. -batchmode:這個參數(shù)可以讓Unity在無需用戶交互的情況下啟動并執(zhí)行指定的任務(wù)。這對于自動化構(gòu)建和持續(xù)集成非常有用。

2. -quit:這個參數(shù)可以讓Unity在啟動后立即退出,適用于需要在啟動時執(zhí)行某些任務(wù)但不需要打開Unity編輯器的情況。

3. -projectPath:這個參數(shù)可以指定Unity項目的路徑。通過在命令行中指定項目路徑,我們可以直接打開指定的項目而不需要手動選擇。

4. -executeMethod:這個參數(shù)可以指定在Unity啟動后立即執(zhí)行的方法。我們可以通過這個參數(shù)來自動運(yùn)行一些腳本或者執(zhí)行一些特定的操作。

5. -nographics:這個參數(shù)可以讓Unity在無需圖形界面的情況下啟動。這對于一些服務(wù)器或者非圖形環(huán)境下的使用非常有用。

除了上述示例外,Unity還提供了許多其他的命令行參數(shù),用于控制和定制Unity的行為。開發(fā)者可以根據(jù)自己的需求來選擇和使用這些參數(shù)。更多自帶參數(shù)請訪問:

Unity - Manual: Command-line arguments

一般來說,-executeMethod就能滿足很多人的要求,這塊可以執(zhí)行一個靜態(tài)類的靜態(tài)函數(shù)或者方法,發(fā)揮空間很足夠。當(dāng)然唯獨(dú)問題是如果函數(shù)方法里有參數(shù)需要傳遞,那么這肯定歇菜。如果你有這個需求,那么就往下看吧!

自定義參數(shù)

老規(guī)矩,情景教學(xué)!當(dāng)然還是基于我之前的一個公共repo去講

GitHub - Shepherd0619/JenkinsBuildUnity: A little script that connect Unity (with HybridCLR hot update) and Jenkins together.

假設(shè)你要自定義要打的場景及其順序、打包目標(biāo)地址,但是我們的Jenkins打包機(jī)不可能自己會打開Unity編輯器圖形界面修改BuildSettings里的場景設(shè)置對吧。

首先先在你的打包腳本(或者另起一個腳本放在Editor文件夾下),我們先獲取一下傳遞進(jìn)來的參數(shù)

// 獲取命令行參數(shù)
string[] args = Environment.GetCommandLineArgs();

拿到array以后,我們需要篩選出我們的自定義參數(shù),你可以寫一個方法

/// <summary>
/// 獲取某個參數(shù)
/// </summary>
/// <param name="args">全部的命令行參數(shù)</param>
/// <param name="name">要獲取的參數(shù)名稱</param>
/// <returns>所求參數(shù)</returns>
private static string[] GetArgument(string[] args, string name)
{
	int start = Array.FindIndex(args, arg => arg == $"-{name}");
	if (start < 0)
	{
		Console.WriteLine($"[JenkinsBuild.GetArgument] Can not find argument: {name}");
		return null;
	}
	start++;
	int end = Array.FindIndex(args, start, arg => arg[0] == '-');
	if (end < 0) end = args.Length;
	int count = end - start;
	if (count <= 0)
	{
		Console.WriteLine($"[JenkinsBuild.GetArgument] Can not find argument value: {name}, Count: {count}, Start: {start}, End: {end}");
		return null;
	}

	string[] result = args.Skip(start).Take(count).ToArray();
	return result;
}

?用法可參考如下

        // 獲取scenes參數(shù)
        string[] scenes = GetArgument(args, "scenes");
        if (scenes == null || scenes.Length <= 0) return;

		// 獲取targetPath參數(shù)
        string[] targetPath = GetArgument(args, "targetPath");
		if (targetPath == null || targetPath.Length <= 0) return;

		BuildPlayerOptions options = new BuildPlayerOptions();
		options.target = BuildTarget.StandaloneLinux64;
		options.subtarget = (int)StandaloneBuildSubtarget.Server;
		options.scenes = scenes;
		options.locationPathName = targetPath[0];

如代碼所示,至于怎么校驗(yàn)參數(shù)的有效性,要么判斷是否為空,要么看長度,兩項只要有一個有問題,那么直接return。?

Jenkins側(cè)

你可以在你Jenkins現(xiàn)有的Job上勾上This project is parameterized來配置參數(shù)。

【Unity實(shí)戰(zhàn)】Jenkins與自定義命令行參數(shù),unity,unity,游戲引擎,jenkins

然后在拉起Unity編輯器那塊引用上面的參數(shù),如${上面在Jenkins定義的參數(shù)名}

【Unity實(shí)戰(zhàn)】Jenkins與自定義命令行參數(shù),unity,unity,游戲引擎,jenkins

保存設(shè)置后,以后執(zhí)行job都會讓你配置參數(shù)了

【Unity實(shí)戰(zhàn)】Jenkins與自定義命令行參數(shù),unity,unity,游戲引擎,jenkins

總結(jié)

總結(jié)起來,Unity命令行參數(shù)是一種非常有用的工具,可以幫助開發(fā)者更好地管理和調(diào)試項目。通過使用命令行參數(shù),我們可以在啟動Unity時自定義一些行為和設(shè)置,從而提高開發(fā)效率和減少錯誤。希望本文對大家了解和使用Unity命令行參數(shù)以及如何自定義有所幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-804427.html

到了這里,關(guān)于【Unity實(shí)戰(zhàn)】Jenkins與自定義命令行參數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包