资源大湿 发表于 2020-11-23 20:31

C#学到什么程度可以开发Unity游戏?

想用Unity做一个3D横版横版过关游戏

蒋委员长长 发表于 2020-11-23 20:32

C#作为Unity内的脚本语言,在初学Unity时并不用太过深入研究,因为这时需要用C#编写的代码主要是游戏逻辑部分。
以手边的《C#入门经典(第七版)》为例,大约需要看到“第八章:面向对象编程简介”即可。
但也并不是说直接一口气看完才能碰引擎,学习最有效率的方式还得是理论与实践的结合。基本熟悉语法后就可以对照着官方的教学视频熟悉引擎了,使用过程中遇到问题在回过头看书,大约是这么一个节奏:
另一个比较好的学习C#基础的方法是用控制台做小游戏。参考:
皮皮关:学习编程的好方法——控制台游戏如果看书觉得很枯燥的话也可以参考咱们的视频教程:
哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili

wll123321 发表于 2020-11-23 20:32

能看懂语法就行,我先学的unity, 后用的c#。不像c++要记很多特性。不过水深水浅还是看你自己的身高

juncolor 发表于 2020-11-23 20:33

针对问题,我可以提供一个从零开始,最快达成目的的办法
首先使用Unity开发游戏,尤其是独立开发,有个好处,就是可以利用资源商店里丰富的资源,这也是官方主推的开发方式。
既然是想做一个3D横版过关游戏(其实是2.5D),我推荐一个完美符合要求的插件。
Corgi Engine - the best 2D+2.5D platformer solution for Unity, by More Mountains好了,现在实现方案的基础框架已经有了,省去了很多爬坑的时间。那么接下来就是研究清楚插件怎么用和如何进行扩展。
怎么用
如果有翻墙的能力,可以在官网里配合视频里的中文字幕功能慢慢学习,如果没有翻墙能力,这里提供一个B站的搬运视频。
https://www.bilibili.com/video/av33239727/如何扩展
想要扩展就必然需要了解C#语言,这里我并不推荐上来就硬啃大部头,对于某些人来说会慢慢磨灭兴趣,我推荐先从菜鸟教程看起。
C# 教程 | 菜鸟教程先简单撸一遍菜鸟教程,然后回头再去看插件源码,遇到问题去搜索关键词,慢慢再把基础补全。然后再去继续研究源码,把高级特性也给搞明白。如果期间还是有在菜鸟教程上搞不明白的知识,建议针对性买书去看,最好找到C#和Unity有交集的书,这样更方便去理解C#在Unity游戏开发中的应用。
最后当你学会了如何扩展,其实接下来的路你也应该明白要怎么走了,是补设计模式、引擎基础、AI、特效等都可以自行选择。
以上,是我觉得针对2.5D横版游戏开发上手最快的路线。

389604496 发表于 2020-11-23 20:34

基础方面:
熟练掌握C,C++基础,对内存分配,内存管理,生命周期有比较熟练的控制。熟练多线程编程,了解并行,并发原理,并尝试自己开发一款了解计算机组成,对硬件缓存,堆栈的优化,编译原理等有比较清楚的认识。做到对数据结构的灵活应用:如队列,堆,数组,哈希查找,二分查找。掌握基本算法,如排序算法,空间几何算法等。了解Unity中如Mono VM, IL2CPP, Boehm GC, Burst Compile这些实现的基本用途以及特性。掌握各种面向过程和面向对象编程的设计模式。进一步学习其他编程模式如面向数据设计,函数式编程等。学习一个图形API,如DirectX 11, DirectX 12, Vulkan等等都可以,对游戏引擎底层有一定了解。
引擎方面:
掌握基础的逻辑组件使用,如Navigation, UGUI, Macanim等,并尝试自己开发一套背包系统,一套FPS,TPS控制器。掌握一定游戏服务端开发技术。掌握一定数据库技术,能够完成游戏存档,读档,联机数据存储等需求。掌握Unity资源管理系统,包括新版本的Addressable, Scriptable Building Pipeline等,并尝试制定一套能够应付大量资源管理的工程流程。对性能优化如:逻辑执行优化,GC优化,算法优化,渲染优化。能够快速Profile并锁定性能热点,在因为性能需要权衡特性时,准确对游戏中的特性的重要性进行排序和分类,确定哪些该简化哪些该腰斩。熟悉Unity渲染,如SRP, Shaderlab等,能够独立开发一款五脏俱全的渲染管线。熟悉Unity编辑器与其他开发软件的互动开发模式,如Houdini Engine等。
本篇回答暂不涉及到美术,策划等方面。程序方面做到这些就差不多可以考虑开始开发一款Unity游戏了,但是开发中依然会遇到各种奇妙的问题,这个只能等开发者自己慢慢踩坑慢慢解决了。

glwhu 发表于 2020-11-23 20:34

作為教師答一發
如果對編程毫無基礎
那先要學:
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小遊戲了

star0454 发表于 2020-11-23 20:34

前面的大佬们都说的太简单了,题主可是想做的可是横版过关游戏,这可是横版过关游戏啊。不了解C底层原理能行?不精通C++能写游戏?不精通操作系统原理能搞横版?这还只是最基础的入门,要写出横版起码汇编得精通吧,多线程都不用说,没有10年多线程经验写个鸡儿横版,网络也不用说,不精通都不好意思下载unity。要知道这可是横版游戏,不是什么地铁显卡离去巫师三这种小儿科玩具游戏

萤火虫 发表于 2020-11-23 20:35

基本语法会了并且做个Demo就可以开发Unity游戏了
反正到时候真开发的时候你想实现的功能好多时候都是对着开发文档(API手册)码代码,比如说我。
真正困难的不是程序,是美术,那些乱七八糟的模型贴图以及动画......
尤其是对于我这个没有艺术细胞的人,打击极大...

裸睡的鱼 发表于 2020-11-23 20:35

想当年花了半天时间看了下c#语法,花了几天熟悉unity引擎,就开始跟着项目写东西了。

shangcunbao 发表于 2020-11-23 20:36

我觉得可以用代码行数评估自己的水平。
初级,百行代码有条不紊的
中级,千行
高级,万行
至于,什么叫有条不紊?当你在项目追加新代码,实现新功能时没有烦躁到想重头开始的念头。
做游戏,也是分大小的,对应不同的水平。但是有一点,不管自己啥水平,既然想做,就要做起来,不要等。
页: [1] 2
查看完整版本: C#学到什么程度可以开发Unity游戏?