想用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游戏了,但是开发中依然会遇到各种奇妙的问题,这个只能等开发者自己慢慢踩坑慢慢解决了。


推荐阅读:
相关文章