遊戲開發小技巧記錄 一 目錄連線

2021-10-17 07:14:34 字數 3400 閱讀 3079

其他平台

擴充套件參考鏈結

windows命令列使用

shell指令碼使用

版本控制管理

在這幾年的開發過程裡遇到了一些問題,在解決問題的過程中學習到了一些非常有用的小技巧,於是準備逐個記錄一下。

這些小技巧在成熟的公司或專案裡可能會很常見,但對於個人開發者或者初創團隊而言往往是一些盲區,有的可能是完全沒有接觸過,有的可能是沒想過可以這麼使用。

記錄下來,希望可以對其他人有所幫助。

這一篇文章要講的是目錄連線

目錄鏈結這個詞是微軟在msdn上的翻譯,英文叫directory junction,在linux上可能叫「符號鏈結」,它是乙個資料夾中的乙個鏈結,這個鏈結指向另乙個資料夾

換句話說,可以讓乙個資料夾在多處被使用,可以解決同一臺電腦下資料夾的同步問題。

上面這個描述看起來非常像是windows系統的快捷方式,但它與快捷方式不同的是,快捷方式僅僅只是乙個可以跳轉到指定目標的檔案,而目錄鏈結則跟乙個普通的目錄沒有區別,它可以被其他的應用作為乙個普通的目錄進行檢測。

那麼這個功能有什麼意義呢?

我們思考下面這樣的場景:

我們團隊裡有兩個人,乙個美術乙個程式,合作使用unity開發乙個遊戲,遊戲使用ngui開發,ngui在使用的時候通常需要使用ngui提供的打包工具進行圖集打包,這個工具的使用範圍是unity內部。

在這時候就出現了幾個問題:

我們匯入的資源在實際專案裡用不上,但每一次又需要把匯入專案中

如果我們使用了版本管理,不管是svn也好還是git或者其他的也好,每一次匯入也同時需要把同步上傳到版本管理裡,如果美術也使用了其他的版本管理,那就意味著我們會額外多出來乙份不必要的版本

每一次美術做完,都需要手動再往專案裡匯入一次,多出來乙個手動步驟就很可能多出來一分出錯的概率

我們建立乙個專門給美術出圖的資料夾,所有出的圖都分類放到這個資料夾的子目錄下;然後把在unity專案中建議這個資料夾的目錄連線,那麼我們的unity就會自動使用這個資料夾。

我們不需要每一次都手動把匯入專案,美術只需要把放到這個資料夾裡,我們就能收到指定檔案,如果我們做好了分類,那麼編寫乙個自動化指令碼呼叫ngui的圖集工具自動更新所有的圖集即可,這就解決了前面1和3兩個問題

我們也不需要把這部分檔案加入版本管理,美術可以自由使用他們自己的版本,另乙份版本也好、專門的相簿也好,只要能進行版本管理即可。

當然,實際開發中遇到的問題可能不會這麼簡單,這個小技巧的使用範圍也不僅限於所舉的例子:

ab包的原始資源非常巨大,改動多,加入版本管理會導致不必要的膨脹,那麼可以把ab包的原始資源和**專案分開,分別進行版本管理,那麼資源和**就形成了兩個專用的版本;

公司中有乙個中臺,專門負責sdk的接入,那麼所有的sdk都使用同乙個匯入的資料夾,這樣sdk的版本和專案的版本就可以分離

等等等等

mklink /j 目標目錄 源目錄
在具體專案中,我們還可以把建立鏈結的命令製作成指令碼,在windows下製作成bat檔案,直接執行即可。

首先我們建立幾個資料夾用於測試,現在幾個資料夾都是空的:

使用我們的目錄連線:

這時候如果進入「target」,會發現裡面多了個「sourcelink」圖示:

如果我們在cmd中使用dir檢視目錄,會發現裡面同樣出現了"sourcelink",並且被標記為,表示這是乙個目錄連線

進入sourcelink中建立乙個檔案,然後到source中檢視,會發現這是同乙個資料夾,在任何乙個裡改動都會造成另乙個改動,並且通過兩個入口進入目錄時顯示的路徑是不同的:

注意上面兩張截圖,從兩個入口進入時,顯示的路徑是不同的。

刪除鏈結時只需要像刪除普通的資料夾那樣刪除就好了,刪除鏈結本身是不會對原始檔造成影響的:

如果對鏈結進行剪下,也會造成源資料夾的所有內容都被剪下到其他地方。

除了windows,其他平台也是可以使用目錄連線的。

比如macos和linux下可以使用ln命令進行製作:

ln -s souce linkname
windows下使用powershell一樣可以實現:

new-item

-type junction -path linkname -value source

其實除了目錄連線外,還有另一種硬連線,通常都針對具體的檔案,可以對同乙個檔案建立不同的開啟入口,有興趣的同學也可以自己研究一下。

在windows下,使用mklink還有乙個/d的選項,可以生成「目錄符號鏈結」,但是在建立時需要對目標目錄使用絕對路徑,如下所示:

這種方式製作的檔案其實就是windows下的快捷方式:

cmd命令:mklink參考

powershell命令:new-item參考

shell命令: ln參考

開發規範(一)目錄規範

為提高團隊協作效率,規範檔案管理,方便專案後期維護,提高 質量,特制訂此文件,前端開發人員必須遵照本規範進行前台頁面開發。root member 業務模組名 conf controller 存放控制器 veiw 存放頁面 basic pc終端 mobile 手機終端 index 控制器名 index...

QT開發功能小技巧記錄

qgroupbox title 方式一 ui textbrowser 2 strmsg 方式二 define ui str recv setcolor 1 define ui str send setcolor 1 str.rx mmi收到列尾反饋常規排風幀 ui.textbrowser 2 qst...

APICloud開發小技巧(一)

apicloud開發文件中,前端開發框架指的就是,類似jq js的語法 1.安卓滑動關閉視窗 在ios裝置上可以通過滑動來關閉win,在安卓預設是不可以。細看下文件其實也很的簡單,監聽事件裡面的swiperight 如果乙個視窗是先開啟win再巢狀frame的開啟的方法如下 apiready fun...