作為一名入行多年的游戲開(kāi)發(fā)者,尤其是虛幻引擎的重度用戶(hù),我在IDE工具的選擇上真的很難有VisualStudio以外的其他選項(xiàng)。不過(guò)自從 2017年JetBrains Rider問(wèn)世以后,這種被VS壟斷的局面正在逐漸被改變,身邊也有越來(lái)越多的朋友推薦我去使用它。
Rider簡(jiǎn)介
Rider誕生于2016年,是JetBrains旗下一款非常年輕的跨平臺(tái) .NET IDE。目前支持包括.NET 桌面應(yīng)用、服務(wù)和庫(kù)、Unity 和 Unreal Engine 游戲、Xamarin 、ASP.NET 和 ASP.NET Core web 等多種應(yīng)用程序的開(kāi)發(fā),配合其強(qiáng)大代碼檢查和快速的響應(yīng)能力,如今已經(jīng)是可以與VS媲美競(jìng)爭(zhēng)的明星產(chǎn)品了。
了解JetBrains系列產(chǎn)品的朋友應(yīng)該都知道,他們的IDE工具(IntelliJ IDEA、PyCharm)基本上都是架構(gòu)在JVM之上的,所以大部分的語(yǔ)言支持插件和相關(guān)產(chǎn)品也都是在JaVA基礎(chǔ)上研發(fā)的。不過(guò),這些產(chǎn)品中倒是有一個(gè)例外,那就是基于.Net架構(gòu)的插件——Resharper。
ReSharper是一款應(yīng)用于VisualStudio的擴(kuò)展插件,由于VS長(zhǎng)期存在著搜索速度慢、跳轉(zhuǎn)不準(zhǔn)確等一系列問(wèn)題,因此Reshaper、VA等可以提高開(kāi)發(fā)效率的插件一直有著廣泛的市場(chǎng)和用戶(hù),并受到不少開(kāi)發(fā)者的好評(píng)和青睞。而今天文章的主角——Rider,就是以Resharper為后端,IntelliJ為前端 (但ReSharper無(wú)法寄宿在JVM上)構(gòu)建的一款新的IDE產(chǎn)品。
網(wǎng)傳JetBrains很早就有開(kāi)發(fā).Net IDE的打算,但由于微軟長(zhǎng)期保持著對(duì)Windows開(kāi)發(fā)環(huán)境的壟斷(并強(qiáng)推VisualStudio作為官方的IDE),很多相關(guān)底層技術(shù)并沒(méi)有開(kāi)源,導(dǎo)致他們只能先開(kāi)發(fā)ReSharper插件來(lái)緊跟.Net的發(fā)展。如今,微軟已經(jīng)收購(gòu)了Mono,整合.NetFrameWork并升級(jí)為全新開(kāi)源的.Net core。也許正是這些足以表明其開(kāi)放態(tài)度的行為,才讓JetBrains又重拾.Net的IDE開(kāi)發(fā)。
游戲開(kāi)發(fā)環(huán)境與常用IDE
上古時(shí)代的游戲開(kāi)發(fā)非常繁瑣,那時(shí)既沒(méi)有成熟的圖形硬件設(shè)計(jì)思路,也沒(méi)有標(biāo)準(zhǔn)的圖形API,當(dāng)然更不可能存在配套的IDE產(chǎn)品了。幾十K的內(nèi)存就動(dòng)輒上百美元,開(kāi)發(fā)者需要慎重處理每一個(gè)bit,并且絞盡腦汁地去針對(duì)硬件去寫(xiě)各種匯編代碼。
>>游戲中的對(duì)象需要精確劃分字節(jié)來(lái)表示
不過(guò)隨著計(jì)算機(jī)技術(shù)的發(fā)展以及個(gè)人PC的普及,游戲主機(jī)的硬件架構(gòu)逐步清晰(PS、Xbox、PC、Switch),相關(guān)的圖形API OpenGL、DirectX等也趨于完善,甚至我們已經(jīng)可以在Windows平臺(tái)通過(guò)交叉編譯來(lái)完成跨平臺(tái)游戲的開(kāi)發(fā)(比如IOS、Andriod、Xbox)。同時(shí),隨著游戲引擎的誕生以及發(fā)展,游戲的分層架構(gòu)越來(lái)越成熟,游戲開(kāi)發(fā)者也可以把更多的精力放在游戲的玩法設(shè)計(jì)上而無(wú)需關(guān)心那些繁瑣的硬件細(xì)節(jié)。
>>雅達(dá)利時(shí)期的電子束掃描繪制
Unity和Unreal作為目前主流的商業(yè)引擎,都有著極為強(qiáng)大的功能和配套工具。但在一個(gè)數(shù)十萬(wàn)甚至上百萬(wàn)行代碼的工程里進(jìn)行開(kāi)發(fā),編碼工作仍然非常復(fù)雜且充滿(mǎn)了挑戰(zhàn)。
目前主流的開(kāi)發(fā)語(yǔ)言為C#或者C ,細(xì)化到具體的崗位后開(kāi)發(fā)環(huán)境會(huì)有一定差異,比如TA可能需要經(jīng)常編寫(xiě)Shader、UI需要經(jīng)常編寫(xiě)腳本語(yǔ)言等。作為一名客戶(hù)端開(kāi)發(fā),下面列舉了一些我平時(shí)的開(kāi)發(fā)環(huán)境和常用工具:
開(kāi)發(fā)平臺(tái):Windows
核心開(kāi)發(fā)工具:IDE Visual Studio VA助手 開(kāi)發(fā)C
數(shù)據(jù)庫(kù):Redis MySQL等
腳本開(kāi)發(fā):VSCode開(kāi)發(fā)Lua,日常的各種腳本編輯
游戲引擎以及相關(guān)工具:Unreal Engine。Unreal Insight做Profile RenderDoc截幀 PVD輔助調(diào)試物理
遠(yuǎn)程:electerm鏈接遠(yuǎn)端Linux服務(wù)器,會(huì)偶爾用vim寫(xiě)一些代碼。VSCode SSH插件偶爾遠(yuǎn)程寫(xiě)一些PHP Python等
日志搜索:Nodepad ,WSL/PowerShell cat grep指令收集信息 跑跑批處理
全局文件搜索:EveryThing/Listary
資源管理:Perforce P4V
代碼管理:Git GitLab
畫(huà)圖:ProcessedOn/ Drawio VSCode插件
當(dāng)然還有很多項(xiàng)目?jī)?nèi)部的工具,比如WEB端的工單管理系統(tǒng)等、Build工具、日志分析工具等等,這里并沒(méi)有列出來(lái)??偟膩?lái)說(shuō),雖然內(nèi)容看起來(lái)很多很雜,但實(shí)際上我大部分的時(shí)間都在與Visual Studio打交道(編碼和調(diào)試Bug),IDE自然就會(huì)對(duì)個(gè)人工作效率有著非常大的影響。
前面其實(shí)提過(guò),由于PC游戲的流行以及Windows在圖形技術(shù)方面的推動(dòng)等原因,通常我們會(huì)選擇Windows作為主要開(kāi)發(fā)環(huán)境。因此,微軟官方的Visual Studio長(zhǎng)期以來(lái)都是主流的開(kāi)發(fā)IDE。但是VS功能太過(guò)強(qiáng)大甚至過(guò)于復(fù)雜,所以集成了一堆我們可能不需要的工具和環(huán)境并造成了一些效率上的缺失。此外,由于其對(duì)游戲引擎沒(méi)有專(zhuān)門(mén)的定制和優(yōu)化,所以會(huì)有很多不太方便的地方,甚至有很多Bug。
對(duì)于我個(gè)人,使用VS日常編碼時(shí)有以下幾個(gè)痛點(diǎn):
搜索不方便:老生常談但是卻非常影響體驗(yàn)的問(wèn)題了,早期VS內(nèi)置的功能對(duì)于Unreal這樣的大項(xiàng)目完全不夠用,比如文件跳轉(zhuǎn)、定義跳轉(zhuǎn)、聲明跳轉(zhuǎn)都支持的很差,按一下F12可能就得卡半天(如下圖),最后還可能跳到一個(gè)錯(cuò)誤的地方,也因此大部分人都會(huì)配合VA助手插件來(lái)輔助開(kāi)發(fā)。好在現(xiàn)在VS也支持Ctrl T全局搜索,雖然一定程度上解決了這個(gè)問(wèn)題,但卡頓的問(wèn)題仍然存在。而且這個(gè)窗口比較小不方便查看還需要全局搜索(Ctrl Shift T)來(lái)輔助。
VA的問(wèn)題:早期的VA問(wèn)題非常多,經(jīng)常用著用著卡死,導(dǎo)致不得不重啟。現(xiàn)在官方修了一些Bug,目前對(duì)于一些重名的經(jīng)常跳轉(zhuǎn)不準(zhǔn)確,另外就是每次重啟IDE后需要花費(fèi)很長(zhǎng)的時(shí)間掃描。
Git相關(guān)的操作不方便:雖然VS目前對(duì)Git的支持已經(jīng)很全面了,但是一些細(xì)節(jié)上總是做的差點(diǎn)意思,比如沒(méi)有對(duì)ignore文件的列表展示和折疊等,Blame很卡頓等,所以通常情況下提交、查看、查詢(xún)等操作我還是習(xí)慣使用Git Bash或者TortoiseGit來(lái)處理。
VS下搜索和過(guò)濾UE的Log不太方便:雖然在編輯器里面可以過(guò)濾,但是一般比較卡,往往只能另開(kāi)一個(gè)文本編輯器查看
多窗口切換:平時(shí)VS基本上只用來(lái)開(kāi)發(fā)C ,其他的腳本語(yǔ)言、PowerShell、遠(yuǎn)程Linux、查看日志等操作都需要切換不同的窗口,用起來(lái)就會(huì)增加時(shí)間成本、降低效率。
如果你平時(shí)開(kāi)發(fā)也有類(lèi)似的問(wèn)題,不如和我一樣試試Rider。
Rider使用體驗(yàn)
安裝與基礎(chǔ)使用:
其實(shí)VS升級(jí)到2022以后,體驗(yàn)確實(shí)已經(jīng)比之前好了很多,但是一些卡頓、跳轉(zhuǎn)的問(wèn)題還是沒(méi)能很好的解決。在身邊朋友的強(qiáng)力推薦下,我轉(zhuǎn)去嘗試Rider這款廣受好評(píng)的編輯器。
為了節(jié)省大家的時(shí)間,關(guān)于安裝、配置、打開(kāi)、運(yùn)行步驟我直接貼到了下面的截圖里面。如下:
(由于Rider已經(jīng)與Unity捆綁在一起,所以Unity用戶(hù)并不需要手動(dòng)下載。我們可以直接在Window-> Package Manager -> 搜索到"Rider"的整合包 。)
(下載鏈接)https://www.jetbrains.com.cn/rider/download/download-thanks.HTML
整個(gè)Rider只要1個(gè)G,下載安裝的過(guò)程非常流暢??紤]到從其他IDE遷移過(guò)來(lái)的用戶(hù),Rider很貼心的在打開(kāi)后提示你導(dǎo)入其他編輯器里面的熱鍵,并自動(dòng)幫你安裝對(duì)應(yīng)的插件。此外,Rider可以直接像VS那樣打開(kāi)sln工程不需要任何其他設(shè)置。
提高效率的配置建議:
在用Rider打開(kāi)項(xiàng)目之后,我們可以直接看到工程根目錄下的ReadMe.md文件。整個(gè)編輯器的布局很清晰,上面的全局的菜單欄,緊挨著下面有一排Run/Debug相關(guān)的按鈕。中間主視野區(qū)是資源目錄和代碼窗口,最下面一排是日志、編譯信息、Git、Debug等多個(gè)可折疊窗口。
在正式使用前,推薦大家先去做一些設(shè)置。
1.快捷鍵設(shè)置?!尽癈trl Alt S”】打開(kāi)setting界面,然后找到【KeyMap】進(jìn)行設(shè)置。前面安裝時(shí)他默認(rèn)會(huì)讀取到你本地的環(huán)境并推薦你對(duì)應(yīng)的“KeyMap”,在這里可以我們可以找到你習(xí)慣的快捷鍵設(shè)置并應(yīng)用。
同時(shí),對(duì)于其他功能可以直接按鍵搜索,或者點(diǎn)擊后面的放大鏡直接通過(guò)使用快捷鍵找到對(duì)應(yīng)的設(shè)置。網(wǎng)上有一些教程給出的快捷鍵與大家本地可能有差異(包括我們后面的快捷鍵介紹),原因是不同人使用的配置不同,如果實(shí)在找不到可以先切到其他人的配置,然后通過(guò)按下快捷鍵去找到這個(gè)功能?;蛘叩焦俜骄W(wǎng)站下載快捷鍵PDF查閱(注意:這里需要提醒大家一點(diǎn),有一些快捷鍵可能被其他軟件所占用導(dǎo)致失效,比如輸入法里面的Ctrl shift F)
https://www.jetbrains.com.cn/rider/documentation/#keyboardShortcut
2.插件:默認(rèn)在安裝的時(shí)候Rider就會(huì)根據(jù)你的選擇幫助你安裝相關(guān)的插件,比如C 和.NET的支持、JavaScript和CSS的支持等。
除此之外推薦大家手動(dòng)安裝一下Key Promoter X的插件,它會(huì)在你使用非快捷鍵的時(shí)候(鼠標(biāo)點(diǎn)擊)在右下角彈窗提示你對(duì)應(yīng)的快捷鍵,有效的鞏固你對(duì)快捷鍵的記憶。
3.代碼主題:不同的用戶(hù)有不同的主題使用習(xí)慣,比如我在VS上通常使用VA進(jìn)行開(kāi)發(fā)。為了無(wú)縫切到Rider下,就可以在編輯器右邊的設(shè)置按鈕里面找到Theme來(lái)選擇Visual Assist Dark完成設(shè)置。
功能推薦
完成配置后就可以愉快的進(jìn)行開(kāi)發(fā)了。當(dāng)然,Rider里面不僅僅有這些功能,還有一些重要的功能推薦給大家使用。
1.搜索:對(duì)于一個(gè)復(fù)雜項(xiàng)目,搜索當(dāng)然是重中之重。首先最方便快捷的就是【”Shift Shift“】進(jìn)行快速的全局搜索,與VS中的【Ctrl T】類(lèi)似,可以查找類(lèi)型、文件、文本字符串等等,支持首字母查找、速度非常快。如果你忘記了某個(gè)快捷鍵,還可以通過(guò)Actions標(biāo)簽進(jìn)行關(guān)鍵字搜索,非常方便實(shí)用。
另一個(gè)非常重要的快捷鍵就是【“Alt Enter”】,可以呼出一個(gè)浮窗處理一系列相關(guān)的邏輯,包括自動(dòng)插入代碼、導(dǎo)航定位、變量重命名、定義構(gòu)造分離、一鍵注釋等各種相關(guān)功能。
【“Alt G”】或者【“Ctrl 鼠標(biāo)左鍵”】可以迅速的在類(lèi)的函數(shù)和定義之間切換,完全不卡且非常準(zhǔn)確。【“Alt O”】可以方便的在類(lèi)的頭文件和CPP文件快速切換。(這些在VA助手里面也有,但是Rider確實(shí)要快多)
【“Alt Shift F”】(VA KeyMap)可以觸發(fā)FindUsages功能來(lái)全局搜索函數(shù)引用,如果只有一個(gè)引用他就會(huì)跳到對(duì)應(yīng)的位置。
【“Ctrl Shift F”】可以全局搜索字符串,秒開(kāi)一個(gè)窗口來(lái)顯示結(jié)果。點(diǎn)擊結(jié)果還可以快速的在不同的窗口之間進(jìn)行切換,非常方便預(yù)覽。
【"Ctrl F2"】或者【"Alt Home"】可以直接顯示當(dāng)前文件所在的目錄,并且可以快速的在當(dāng)前目錄前后進(jìn)行跳轉(zhuǎn)和查閱。
還可以設(shè)置更多快捷鍵來(lái)快速打開(kāi)當(dāng)前文件夾或者控制臺(tái)等。
另外,Rider對(duì)Shader的代碼的提示和搜索支持的也非常好,寫(xiě)HLSL與寫(xiě)C C#的絲滑程度基本一致。
2.編碼:我們?cè)陬^文件在聲明類(lèi)之后可以通過(guò)【“Alt Insert”】自動(dòng)的幫你插入常見(jiàn)的構(gòu)造函數(shù)、getter、Setter等,聲明完函數(shù)后,還可以轉(zhuǎn)到CPP里面直接使用【“Alt Insert”】插入所有沒(méi)有被實(shí)現(xiàn)過(guò)的的函數(shù)代碼段。
【“Ctrl E”】或者【“Ctrl 逗號(hào)”】可以快速的打開(kāi)最近查看過(guò)的文件列表。
【“Alt ↑ 或 ↓”】在當(dāng)前文件的函數(shù)間進(jìn)行切換。【“Ctrl End/Home”】在當(dāng)前文件的首尾進(jìn)行切換。
Rider的提示功能也很強(qiáng),編碼時(shí)可以快速的提示你可能想使用的類(lèi)型,另外還支持顯示宏定義的參數(shù)名稱(chēng)。
我們還可以在Editor里面設(shè)置常用的“代碼模板”,用于快速輸入自定義格式的代碼片段。比如UE里面打印Log的接口比較復(fù)雜,我們就可以自定義設(shè)置“小寫(xiě)的不同版本的代碼模板”來(lái)快速的輸出我們想要的格式。
很多使用Linux的朋友可能比較習(xí)慣Vim的操作,Rider里也可以直接一鍵設(shè)置按鍵習(xí)慣。安裝IdeaVim插件后就可以方便的在Vim和Intelj來(lái)回切換。
3.Git相關(guān):Git相關(guān)的插件是直接默認(rèn)安裝的(如果沒(méi)有可以到Plugin配置下面搜索),【Alt 9】打開(kāi)Git的窗口我們就可以很方便的進(jìn)行Push、Fetch Commit 、Blame、 View Diff、View Histoty等操作。習(xí)慣后就可以完全在Rider里面進(jìn)行Git相關(guān)的操作了,大大地提高效率。
4.Debug:Rider可以自動(dòng)查找并加載 UE4.natvis,不過(guò)他的Debug流程比較特別,需要用專(zhuān)門(mén)的Debug模式運(yùn)行才可以調(diào)試。(不能直接點(diǎn)擊Run)常見(jiàn)的調(diào)用堆棧、變量監(jiān)聽(tīng)、函數(shù)斷點(diǎn)(條件斷點(diǎn))、內(nèi)存數(shù)據(jù)斷點(diǎn)、即時(shí)窗口、單步調(diào)試都支持,不過(guò)很多窗口都不支持折疊或者更多設(shè)置,內(nèi)存斷點(diǎn)比較麻煩,不能自定義寫(xiě)地址斷點(diǎn),不支持Debug變量的字符串匹配搜索,感覺(jué)還有待完善。
5.數(shù)據(jù)庫(kù):Rider自帶了數(shù)據(jù)庫(kù)可視化工具,可以在軟件中直接操作數(shù)據(jù)庫(kù)。而且通常我們使用的SQL Server、MySQL、Apache、Oracle全部都是支持的,用起來(lái)非常方便。
6.全棧開(kāi)發(fā):Rider本身對(duì)WEB全棧其實(shí)是比較友好的,常見(jiàn)的JavaScript、TypeScript、HTML、CSS、JSON、SQL 等全部支持。而在游戲開(kāi)發(fā)中,我們除了C 、C#還可能需要寫(xiě)Lua、Python等腳本代碼,所以常常是分別使用VS和VSCode來(lái)編寫(xiě)不同語(yǔ)言的代碼。有了Rider,再配合一些插件,我們就可以全部都在一個(gè)IDE里面進(jìn)行操作了。此外,Rider還支持SSH,對(duì)于兼職客戶(hù)端服務(wù)器兩個(gè)崗位的同學(xué),平時(shí)使用Rider搞前端,然后直接SSH鏈接到遠(yuǎn)端寫(xiě)服務(wù)器代碼也是非常舒服的。
7.其他功能:還有一些比較人性化的功能,使用起來(lái)也很方便
內(nèi)置控制臺(tái),解決運(yùn)行批處理來(lái)回切窗口的問(wèn)題。
ToDolist預(yù)覽,寫(xiě)復(fù)雜功能的時(shí)候就不怕臨時(shí)忘掉了
數(shù)字BookMark,更方便的進(jìn)行跳轉(zhuǎn)和記錄
LocalHistory,相當(dāng)于一個(gè)本地自動(dòng)的版本管理記錄,可以右鍵查看和對(duì)比,即使電腦突然死機(jī)也可以找到你最近修改過(guò)的記錄。
顏色選取,對(duì)Color定義使用【Alt Enter】可以直接呼出顏色面板進(jìn)行選色替換(Unity可用)
8.關(guān)于漢化:Rider于2月初剛剛推出針對(duì)簡(jiǎn)體中文本地化的搶先體驗(yàn)計(jì)劃,目前體驗(yàn)下來(lái)還不錯(cuò),預(yù)計(jì)很快就會(huì)就能正式進(jìn)入官方版本。
https://blog.jetbrains.com/zh-hans/dotnet/2023/02/07/introducing-the-rider-localization-eap-for-chinese-japanese-and-korean/
Rider與游戲開(kāi)發(fā)
作為一款進(jìn)軍游戲開(kāi)發(fā)領(lǐng)域的IDE,Rider針對(duì)Unity和Unreal的做了很多定制的開(kāi)發(fā)來(lái)提高效率。早在Rider問(wèn)世時(shí),就已經(jīng)針對(duì)Unity做了很多功能并且被Unity官方所推薦。而今年初Epic官方發(fā)布發(fā)布的黑客帝國(guó)Demo也是使用Rider所開(kāi)發(fā),側(cè)面證明Rider了對(duì)虛幻引擎的支持力度和Epic官方對(duì)其的信任程度。
Rider對(duì)游戲開(kāi)發(fā)的定制優(yōu)化:
定制化的代碼檢查與提示:針對(duì)不同的游戲引擎提供非常完善的代碼檢查以及智能修復(fù)功能(一鍵生成#include缺失文件等)。比如針對(duì)Unreal,可以自動(dòng)顯示反射相關(guān)的所有提示,包括UPROPERTY、UFUNCTION、UCLASS宏里面的參數(shù)。還可以檢查RPC、屬性回調(diào)函數(shù)等相關(guān)的參數(shù)設(shè)置是否正確。
資源索引和定位:對(duì)于Unity,能夠在代碼里直接看到是哪些物體使用了這個(gè)腳本以及相關(guān)引用,還可以非常智能的進(jìn)行反匯編來(lái)跳轉(zhuǎn)到指定的源碼。對(duì)于Unreal,可以直接在代碼上浮窗顯示藍(lán)圖資源的引用數(shù)量和位置,支持藍(lán)圖的讀取和搜索。
特定類(lèi)型腳本和文件的構(gòu)建模板:比如UnityScript、Unity Shader、Unreal UObject/Actor Class等
完美兼容Shader編寫(xiě):所有的IDE快捷鍵都可以使用
支持與引擎的雙向通信:即可以在IDE里面直接操作引擎編輯器的Play等操作
日志共享:可以直接在IDE里面查看搜索游戲日志,Unity還可以通過(guò)點(diǎn)擊日志直接定位到對(duì)應(yīng)代碼
斷點(diǎn)暫停:Unity支持在斷點(diǎn)的同時(shí),暫停整個(gè)游戲,恢復(fù)斷點(diǎn)后仍然維持暫停狀態(tài)
單元測(cè)試:可以在IDE里面配置多個(gè)單元測(cè)試,一鍵執(zhí)行并返回所有結(jié)果
配置文件:支持Unreal在IDE中讀取配置文件內(nèi)容并顯示
為了讓Unreal開(kāi)發(fā)更加流暢,我們還需要做一些設(shè)置來(lái)提高使用體驗(yàn):
https://www.jetbrains.com.cn/lp/rider-unreal/
1.安裝Riderlink:如果你是使用虛幻引擎進(jìn)行開(kāi)發(fā),打開(kāi)工程后就會(huì)推薦你按照RiderLink。這是官方專(zhuān)門(mén)為UE開(kāi)發(fā)的插件,提供了Rider Blueprints、GameControl、Logging、ShaderInfo四個(gè)子功能,會(huì)直接按照到對(duì)應(yīng)工程或者引擎對(duì)應(yīng)的Plugin的目錄下。
按照后我們可以直接在編輯器里面創(chuàng)建Unreal里面常見(jiàn)的類(lèi)型。
直接在IDE里面設(shè)置UE編輯器里面的啟動(dòng)參數(shù)
可以直接在IDE的窗口里面查看UE編輯器的日志,可以直接使用Log的層級(jí)過(guò)濾功能,速度很快且方便。
2.安裝EzArgs插件:通常來(lái)說(shuō),如果想要在啟動(dòng)的時(shí)候加命令行參數(shù)(比如想運(yùn)行一個(gè)純客戶(hù)端而非Editor),需要打開(kāi)項(xiàng)目設(shè)置,然后在項(xiàng)目命令函參數(shù)里面添加。
安裝插件后,我們就可以直接在這里添加參數(shù)。有一個(gè)技巧就是平時(shí)把參數(shù)都填進(jìn)去保持,如果想讓其失效,就在“-”和字符串中間加一個(gè)空格,用到的時(shí)候再把空格刪掉。
Unity由于Rider很早就支持,所以幾乎不需要下載額外的插件就可以享受前面提到的各種功能。 有一點(diǎn)補(bǔ)充一下,
我們第一次使用時(shí),需要在Unity編輯器里面設(shè)置IDE為 Rider “Edit -> Preferences -> External Tools -> External Tools“ 。后面就可以直接在編輯器里面雙擊腳本在Rider里面打開(kāi)了。
https://www.jetbrains.com.cn/lp/dotnet-unity/
結(jié)語(yǔ)
通過(guò)這段時(shí)間對(duì)Rider的體驗(yàn),我感受到了JetBrains對(duì)產(chǎn)品的用心以及其未來(lái)的發(fā)展?jié)摿Γㄓ绕涫窃谟螒蜷_(kāi)發(fā)的環(huán)境上)。雖然VS依舊有著無(wú)法被撼動(dòng)的地位以及優(yōu)勢(shì),但是在很多方面,Rider已經(jīng)與VS平分秋色甚至超過(guò)VS。單從游戲開(kāi)發(fā)的角度而言,Rider確實(shí)在整體的體驗(yàn)上要?jiǎng)龠^(guò)VS一些。
最后,再將Rider與VS做一個(gè)相對(duì)全面的比較:
總體對(duì)比
Rider是64位 / VS在2022版本后才升級(jí)為64位【64位意味著更大的內(nèi)存空間使用和運(yùn)行時(shí)性能的提升?!?/span>
Rider是跨平臺(tái)的,支持Windows/Linux/MacOS / VS只支持Windows平臺(tái)【可以在Mac上使用Unity】
Rider前后端異構(gòu),前端IntelliJ Platform基于JVM,后端Resharper基于.Net / VS完全基于.Net框架實(shí)現(xiàn)
Rider 對(duì) .Net 平臺(tái)語(yǔ)言支持雖然完整,但在可視化編輯器方便以及部分微軟的商業(yè)產(chǎn)品上支持不足 / VS功能非常豐富,除了常見(jiàn)的WEB開(kāi)發(fā)、C 桌面應(yīng)用開(kāi)發(fā),還完整的支持Azure、SQL Server、TFS、Office、WPF、UWP等
Rider對(duì)游戲引擎的支持更加友好和完善 / VS 沒(méi)有針對(duì)游戲引擎做過(guò)多的定制化
Rider漢化剛剛推出體驗(yàn)版,還在完善 / VS自帶漢化版本
Rider占用體積小,安裝迅速,不容易出現(xiàn)軟件依賴(lài)和卸載的難題 / VS占用體積非常大,安裝比較耗時(shí)
Rider需要.NET來(lái)構(gòu)建相關(guān)產(chǎn)品 / VS installer在構(gòu)建.NET產(chǎn)品以及 處理VS安裝修改、庫(kù)組件升級(jí)等方面更詳細(xì)和方便
Rider是商業(yè)產(chǎn)品 需要收費(fèi) / VS 有免費(fèi)的社區(qū)版
使用體驗(yàn)差異
搜索:Rider解析速度略快,搜索非??欤D(zhuǎn)非常準(zhǔn)確。不需要長(zhǎng)時(shí)間的掃描來(lái)占用CPU,基本上不會(huì)出現(xiàn)卡死的情況 / VS 除了兩個(gè)全局搜索的功能外,其他搜索效率和準(zhǔn)確度都不太友好,而且經(jīng)常容易卡
調(diào)試:Rider支持VS的大部分功能,但是在數(shù)據(jù)斷點(diǎn)、即時(shí)窗口、變量搜索等方便不夠完善 / VS調(diào)試功能更全面,體驗(yàn)要更好一些
單元測(cè)試:Rider對(duì)Unity單元測(cè)試支持比較好 / VS沒(méi)有針對(duì)游戲引擎定制的單元測(cè)試
引擎操作:Rider可以在IDE里面直接運(yùn)行的游戲?qū)嵗?/ VS目前還需要切換到編輯器窗口來(lái)進(jìn)行操作
編碼:Rider的代碼生成很智能且迅速 / VS的往往不夠準(zhǔn)確
數(shù)據(jù)庫(kù):Rider默認(rèn)支持多種數(shù)據(jù)庫(kù)可視化功能(包括MongoDB,SQlite, Sybase, DB2, Derby等)/ VS默認(rèn)只支持SQL Server, Azure SQL, Oracle等幾款常見(jiàn)數(shù)據(jù)庫(kù)
全棧開(kāi)發(fā):Rider可以在很少的配置下就支持多種語(yǔ)言的開(kāi)發(fā)和搜索 / VS做全棧開(kāi)發(fā)感覺(jué)還是過(guò)于厚重
提示/檢查:Rider的提示更完整更準(zhǔn)確(甚至詳細(xì)到編碼風(fēng)格以及性能使用建議)/ VS 基本上只有常規(guī)的檢查,偶爾會(huì)出現(xiàn)錯(cuò)誤的代碼提示
Git:Rider對(duì)Git的展示和處理更友好/ VS從功能上來(lái)說(shuō)支持也很完整,但是體驗(yàn)稍差
資源占用:Rider的內(nèi)存占用看起來(lái)是比較高的(估計(jì)是因?yàn)樗隽撕芏嘟馕雠c緩存),編譯CPU吃滿(mǎn) / VS內(nèi)存占用比Rider少30%左右,編譯CPU吃滿(mǎn)
反編譯:Rider的反編譯很完善準(zhǔn)確 / VS偶爾會(huì)出現(xiàn)反編譯失敗無(wú)法調(diào)試的情況
Dump:Rider無(wú)法直接打開(kāi)Dump文件,需要在IDE里面使用特定的指令 / VS對(duì) Dump的支持要更加友好一點(diǎn)
當(dāng)然除此之外,官方也給過(guò)更為完整詳細(xì)的對(duì)比。大家可以自行查閱
https://www.jetbrains.com/rider/compare/rider-vs-visual-studio/
Rider是一款年輕且優(yōu)秀的IDE,在搜索與提示方面做到了極致,用戶(hù)熟悉之后就可以大大地提高開(kāi)發(fā)效率。同時(shí),考慮到其針對(duì)Unity和Unreal的定制,Rider絕對(duì)可以說(shuō)是目前最適合游戲開(kāi)發(fā)的IDE之一了。如果非要說(shuō)缺點(diǎn)的話(huà),那可能就是Ride并非一款免費(fèi)的IDE產(chǎn)品,首年使用就需要花費(fèi)149刀來(lái)進(jìn)行購(gòu)買(mǎi)(次年119,第三年89)。從個(gè)人角度來(lái)講這個(gè)價(jià)格著實(shí)不算便宜,但對(duì)于公司來(lái)說(shuō)依然要比采購(gòu)VA要更為劃算。學(xué)生和教師是可以申請(qǐng)免費(fèi)使用的,非學(xué)生黨且感興趣的朋友也可以免費(fèi)試用一個(gè)月再?zèng)Q定是否購(gòu)買(mǎi)。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn),該文觀(guān)點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。