1. 程式人生 > >使用命令列執行unity並執行某個靜態函式(運用於遠端打包)

使用命令列執行unity並執行某個靜態函式(運用於遠端打包)

可以寫個python,這個python去接收遠端的命令,然後執行一個bat批處理

這個bat批處理首先判斷Unity是否執行中,如果執行中,則先殺掉Unity,然後啟動Unity並執行某個Editor的靜態函式

bat指令碼例:

::判斷Unity是否執行中
TASKLIST /V /S localhost /U %username%>tmp_process_list.txt
TYPE tmp_process_list.txt |FIND "Unity.exe"

IF ERRORLEVEL 0 (GOTO UNITY_IS_RUNNING)
ELSE (GOTO START_UNITY)

:UNITY_IS_RUNNING
::殺掉Unity
TASKKILL /F /IM Unity.exe
::停1秒
PING 127.0.0.1 -n 1>NUL
GOTO START_UNITY

:START_UNITY
C:
CD C:\Program Files\Unity\Editor
.\Unity.exe -projectPath E:\my_project\testProject -quit -batchmode -executeMethod MyEditorScript.RunTest

PAUSE

注:Unity工程目錄是E:\my_project\testProject

Unity命令列引數解釋:

-batchmode
   在 批處理模式下執行Unity。應始終與其他命令列引數一起使用,因為它確保不會彈出視窗,無需任何人為的干預。當指令碼程式碼在執行過程中發生異常,資源服務 器更新失敗或其他操作失敗時Unity將立即退出,並返回程式碼為1。請注意,在批處理模式下, Unity將向控制檯傳送輸出版本最小的日誌。當然,日誌檔案將包含完整的日誌資訊。
-quit
   其他命令執行完畢後將退出Unity編輯器。請注意,這可能會導致錯誤訊息被隱藏(但他們將顯示在Editor.log檔案)
-buildWindowsPlayer <pathname>


   建立一個單獨的Windows遊戲(例如:-buildWindowsPlayer path/to/your/build.exe)
-buildOSXPlayer <pathname>   建立Mac遊戲(例如:-buildOSXPlayer path/to/your/build.app)-importPackage <pathname>
   匯入提供的package,不會顯示匯入對話方塊
-createProject <pathname>
   根據提供的路徑建立一個空專案
-projectPath <pathname>
   開啟指定路徑的專案
-logFile <pathname>

   指定將要被寫入編輯的log檔案
-assetServerUpdate <IP[:port] projectName username password [r <revision>]>
   可 通過ip埠強制更新資源伺服器的專案。埠是可選的,如果不是的話可以假定一個標準埠(10733)。最好使用此命令配合- projectpath引數確保你在正確的專案裡工作。如果沒有提供專案名字是那麼就是最後一個Unity開啟的專案。如果沒有選擇專案的路徑則由- projectpath自動建立。
-exportPackage <exportAssetPath exportFileName>
   根 據路徑匯出package。exportAssetPath是一個資料夾(相對Unity專案的根目錄)為了匯出Unity專案並且 exportFileName是package的名稱。目前,此選項只能在同一個時間匯出整個資料夾。這個命令通常需要使用- projectpath引數
-nographics (Windows only)
   當執行在批處理模式,不會初始化顯示卡裝置。這使得它可以在你的機器上自動按工作流程執行,甚至它沒有GPU。
-executeMethod <ClassName.MethodName>
   在 Unity啟動的同時會執行靜態方法,該專案是開放的並且是在可選資源伺服器更新完成之後。這可以用來不斷的整合,進行單元測試,製作模型,準備一些資料 等。如果你想通過命令列返回一個錯誤,你可以丟擲一個異常,會引發程式碼為1的Unity關閉或其他引發EditorApplication.Exit非零 程式碼。使用executeMethod,你需要在編輯資料夾有一個指令碼並且類裡有一個靜態函式。
-batchmode
   在"headless"模式下運行遊戲。遊戲將不顯示任何內容,或接受使用者輸入。這對執行網路遊戲的伺服器有很大的作用的。
-force-opengl (Windows only)
   讓遊戲使用OpenGL進行渲染,即使有可用的Direct3D。通常情況是使用Direct3D,但如果是Direct3D 9.0c的不可用的話則會選用OpenGL。
-single-instance (Windows only)
   在同一時候只允許一個遊戲例項執行。如果另一個例項已在執行,然後再次通過 -single-instance啟動它的話會調節到現有的這個例項。
-nolog (Windows only)
   不產生輸出日誌。 通常output_log.txt被寫在遊戲輸出目錄下的*_Data資料夾中 ,在debug.log中列印輸出的地方。
-force-d3d9-ref (Windows only)
   使遊戲執行在Direct3D的"Reference"軟體渲染模式,必須要安裝DirectX SDK才能使其工作。這主要是用於建立自動化測試物件,這樣您可以確保不管是使用什麼顯示卡,其渲染效果是完全一樣的。
-adapter N (Windows only)
   允許遊戲全屏執行在另一臺顯示器上,其中N表示顯示的號碼。
-popupwindow (Windows only)
   這個視窗將以彈出的方式建立(沒有框架)

相關推薦

使用命令執行unity執行某個靜態函式運用遠端打包

可以寫個python,這個python去接收遠端的命令,然後執行一個bat批處理 這個bat批處理首先判斷Unity是否執行中,如果執行中,則先殺掉Unity,然後啟動Unity並執行某個Editor的靜態函式 bat指令碼例: ::判斷Unity是否執行中 TASKLI

命令編譯java生成可執行的jar包

如果對於編譯有編碼要求的 應該使用-encoding引數指明編碼方式:javac -encoding UTF-8 XX.java 一個package中,兩個java檔案中,一個有main函式,一個沒有,兩者之間有呼叫關係 ThreadTest.java package

windows命令下編譯和執行c/c++

我看了半天,也沒找到window命令列下編寫程式,說明這個不可取。 那我們只有利用已有檔案來編譯與運行了。 假設我在E盤裡有個.cpp檔案,我改如何編譯和執行她尼? 第一步:我可以直接到該目錄的檔案管理器視窗位址列執行命令:cmd,這樣就可以直接到達所需檔案的目錄。如下圖   &nbs

linux命令下,怎麼執行一個qt工程檔案

1、在Linux下的命令列編輯程式: [[email protected] root]# mkdir hello //mkdir命令建立一個hello目錄 [[email protected] root]# cd hello //cd命令切換到剛才建立的hello目錄 [[ema

使用命令視窗編譯和執行java檔案

1.使用記事本或者編輯器寫一個HelloWorld.java檔案 public class HelloWorld{        public static void main(String[] args){               System.out.print

1. [轉] 命令裡 pip list 執行時出現DEPRECATION 解決辦法

[轉]命令列裡 pip list 執行時出現DEPRECATION 解決辦法 報錯內容: DEPRECATION: The default format will switch to columns in the future. You can use –format=(legacy|c

windows如何通過命令檢視memcache當前執行的狀態

    命令列下檢視memcache的執行狀態的命令主要是stats命令,步驟如下:     (1)首先通過telnet命令連線上memcache,命令:telnet 127.0.0.1 11211     (2)直接輸入stats 就可以得到當前memcache的狀態。

LINUX命令如何檢視memcache執行狀態

(附加)如何檢視memcache伺服器端版本:  ./memcached  -h memcache的執行狀態可以方便的用 stats 命令顯示。 首先用telnet 127.0.0.1 11211這樣的命令連線上memcache,然後直接輸入stats就可以得到當前me

命令的方式來執行7z壓縮和解壓縮

我在研究怎樣使用7z,以及7z的極限壓縮(把檔案壓縮到最小size)。 從官網下載軟體安裝包。安裝完畢後,安裝目錄裡面有一個 7-zip.chm 幫助檔案,可以瞭解7z的詳細的使用說明。 用命令列來執行7z的極限壓縮,就是如下的命令: C:\01_MyApp\7-Zip

在 Linux 命令中使用和執行 PHP 程式碼:12 個 PHP 互動性 shell 的用法

Run PHP Codes in Linux Commandline 本文旨在讓你瞭解一些相當不錯的Linux終端中的PHP互動性 shell 的用法特性。 讓我們先在PHP 的互動shell中來對php.ini設定進行一些配置吧。 6. 設定PHP命令列提示符

.c/.cpp檔案windows命令下編譯,執行.c/.cpp檔案

用virtual studio編譯連結檔案習慣了,今天想在windows命令列下試一下如何進行檔案的編譯執行,起初以為敲幾個命令就螚搞定了,輸入cl命令居然不能執行,提示“cl不是內部命令或者外部命令”,上網查了許久,發現這樣的問題介紹的好少,下面就談談在命令列下如何編譯

在linux命令中編譯和執行java檔案

同時載入編譯多個jar包和java檔案 在個人平常使用或者當我們把程式碼部署到linux伺服器上的時候,我們經常需要通過命令列編譯和執行java檔案,網上關於這個的方法大多是通過 javac -cp filePath/jarName.jar j

命令提示符裡的執行結果匯出到text檔案中

為便於檢視和儲存命令列提示符裡的執行結果 可以使用 ">" 將執行結果匯入到指定.txt檔案中  例如:在命令列提示符裡檢視C盤檔案,並將結果匯入到E盤dir-c-output.txt檔案。 dir > e:\dir-c-output.txt    

ubuntu 命令解除安裝清理軟體

1、刪除軟體 方法一、如果你知道要刪除軟體的具體名稱,可以使用 sudo apt-get remove --purge 軟體名稱 sudo apt-get autoremove --purge 軟體名稱 方法二、如果不知

ubuntu 命令解除安裝清理軟體解除安裝的很乾淨

ubuntu 命令列解除安裝並清理軟體刪除軟體方法一、如果你知道要刪除軟體的具體名稱,可以使用sudo apt-get remove --purge 軟體名稱  sudo apt-get autorem

如何用cmd命令連線資料庫進行資料庫相關的操作

以下提到的相關操作只針對於SQL Server軟體,請知曉!其實在Windows系統上是可以使用命令列對不在本地或本地的的資料庫進行操作的。相信這是一個不錯的裝逼利器哦首先說如何用cmd連線本地的資料庫:            首先win+R快捷鍵開啟 “執行”介面,輸入cm

XenServer命令自動化拷貝初始化虛擬機器

我們建立了本地機房,購買了一定數量的物理伺服器,每臺伺服器安裝了Xenserver,並打算在上面建立虛擬機器。之前我們一直通過的是XenCenter的方式,圖形化的操作來建立我們遇到了一個問題, 那就是,每臺新建的VM,其IP地址與主機名等在複製之後,不能自動更新。 我請教

Mac上使用命令安裝brew,通過brew安裝Ant等工具

brew又叫Homebrew,是Mac OS X上的軟體包管理工具,能在Mac中方便的安裝或解除安裝軟體,只需要一個命令,非常方便。 安裝brew 開啟Mac上的終端,輸入命令,並按回車鍵: rub

window命令啟動Mysql安裝成服務

1 1. 以本地服務方式啟動   安裝mysql本地服務   D:\AppServ\MySQL\bin\mysqld.exe --install 服務名     D:\AppServ\MySQL\bin>mysqld-nt --install mysql     如果

Ubuntu Terminal命令新建倉庫推送到遠端倉庫

通常情況下,在本地新建一個倉庫之後,需要在遠端網頁端也新建一個空的同名倉庫,然後將兩者進行關聯才能推送。 那有沒有辦法直接在命令列就完成從新建到推送的過程而不需要中間在網頁端也操作一番呢?辦法當然是有的。 下面以一個示例來說明一下。 1. 準備測試檔案 首先做一些檔案的準備,作為此次實驗新建的本地倉庫 git