想用Unity做一個3D橫版橫版過關遊戲


C#作為Unity內的腳本語言,在初學Unity時並不用太過深入研究,因為這時需要用C#編寫的代碼主要是遊戲邏輯部分。

以手邊的《C#入門經典(第七版)》為例,大約需要看到「第八章:面向對象編程簡介」即可。

但也並不是說直接一口氣看完才能碰引擎,學習最有效率的方式還得是理論與實踐的結合。基本熟悉語法後就可以對照著官方的教學視頻熟悉引擎了,使用過程中遇到問題在回過頭看書,大約是這麼一個節奏:

另一個比較好的學習C#基礎的方法是用控制台做小遊戲。參考:

皮皮關:學習編程的好方法——控制台遊戲?

zhuanlan.zhihu.com圖標

如果看書覺得很枯燥的話也可以參考咱們的視頻教程:

嗶哩嗶哩 ( ゜- ゜)つロ 乾杯~ Bilibili?

space.bilibili.com


能看懂語法就行,我先學的unity, 後用的c#。不像c++要記很多特性。不過水深水淺還是看你自己的身高


針對問題,我可以提供一個從零開始,最快達成目的的辦法

首先使用Unity開發遊戲,尤其是獨立開發,有個好處,就是可以利用資源商店裡豐富的資源,這也是官方主推的開發方式。

既然是想做一個3D橫版過關遊戲(其實是2.5D),我推薦一個完美符合要求的插件。

Corgi Engine - the best 2D+2.5D platformer solution for Unity, by More Mountains?

corgi-engine.moremountains.com圖標

好了,現在實現方案的基礎框架已經有了,省去了很多爬坑的時間。那麼接下來就是研究清楚插件怎麼用和如何進行擴展。

怎麼用

如果有翻牆的能力,可以在官網裡配合視頻里的中文字幕功能慢慢學習,如果沒有翻牆能力,這裡提供一個B站的搬運視頻。

https://www.bilibili.com/video/av33239727/?

www.bilibili.com

如何擴展

想要擴展就必然需要了解C#語言,這裡我並不推薦上來就硬啃大部頭,對於某些人來說會慢慢磨滅興趣,我推薦先從菜鳥教程看起。

C# 教程 | 菜鳥教程?

www.runoob.com

先簡單擼一遍菜鳥教程,然後回頭再去看插件源碼,遇到問題去搜索關鍵詞,慢慢再把基礎補全。然後再去繼續研究源碼,把高級特性也給搞明白。如果期間還是有在菜鳥教程上搞不明白的知識,建議針對性買書去看,最好找到C#和Unity有交集的書,這樣更方便去理解C#在Unity遊戲開發中的應用。

最後當你學會了如何擴展,其實接下來的路你也應該明白要怎麼走了,是補設計模式、引擎基礎、AI、特效等都可以自行選擇。

以上,是我覺得針對2.5D橫版遊戲開發上手最快的路線。


作為教師答一發

如果對編程毫無基礎

那先要學:

1. 變數 (int, float, string, bool)

2. 函數 (如何自定義,如何調用,輸入輸出)

3. 運算符,邏輯符 ( || 等)

4. 條件語句 (if else)

然後就可以做出很多小遊戲了

比如打磚塊,谷歌小恐龍等

在這過程中你會遇到一些比如

transform.position.x

new Vector3

Input.GetKey()

這些可以先記住,會用就好,不用急著理解

後來你會遇到UI的製作

此時你要簡單學習 namespace

玩家死亡後你會需要清除全屏敵人

此時你需要學會循環語句 for, while 和 foreach

以後你還會寫要在一個Class中調用另一個Class的函數

此時你可以學到 static

甚至可以學習 event

基本上能熟練運用 for 和 foreach

已經能開發極多Unity小遊戲了


基礎方面:

  1. 熟練掌握C,C++基礎,對內存分配,內存管理,生命周期有比較熟練的控制。
  2. 熟練多線程編程,了解並行,並發原理,並嘗試自己開發一款
  3. 了解計算機組成,對硬體緩存,堆棧的優化,編譯原理等有比較清楚的認識。
  4. 做到對數據結構的靈活應用:如隊列,堆,數組,哈希查找,二分查找。
  5. 掌握基本演算法,如排序演算法,空間幾何演算法等。
  6. 了解Unity中如Mono VM, IL2CPP, Boehm GC, Burst Compile這些實現的基本用途以及特性。
  7. 掌握各種面向過程和面向對象編程的設計模式。
  8. 進一步學習其他編程模式如面向數據設計,函數式編程等。
  9. 學習一個圖形API,如DirectX 11, DirectX 12, Vulkan等等都可以,對遊戲引擎底層有一定了解。

引擎方面:

  1. 掌握基礎的邏輯組件使用,如Navigation, UGUI, Macanim等,並嘗試自己開發一套背包系統,一套FPS,TPS控制器。
  2. 掌握一定遊戲服務端開發技術。
  3. 掌握一定資料庫技術,能夠完成遊戲存檔,讀檔,聯機數據存儲等需求。
  4. 掌握Unity資源管理系統,包括新版本的Addressable, Scriptable Building Pipeline等,並嘗試製定一套能夠應付大量資源管理的工程流程。
  5. 對性能優化如:邏輯執行優化,GC優化,演算法優化,渲染優化。能夠快速Profile並鎖定性能熱點,在因為性能需要權衡特性時,準確對遊戲中的特性的重要性進行排序和分類,確定哪些該簡化哪些該腰斬。
  6. 熟悉Unity渲染,如SRP, Shaderlab等,能夠獨立開發一款五臟俱全的渲染管線。
  7. 熟悉Unity編輯器與其他開發軟體的互動開發模式,如Houdini Engine等。

本篇回答暫不涉及到美術,策劃等方面。程序方面做到這些就差不多可以考慮開始開發一款Unity遊戲了,但是開發中依然會遇到各種奇妙的問題,這個只能等開發者自己慢慢踩坑慢慢解決了。


推薦閱讀:
相关文章