本来是打算学习Godot的,Godot方方面面都符合我的需求.但我做的短期职业规划里列举的需求中,最好的方案是专攻Unity和3Dmax,以便适应行业需求,加上Unity学习资源也比较多,上手也更容易.所以先挑了Unity作为过渡.
Unity基础
一直以来的自学经验,让我对教程的选择比较谨慎,最后发现UnityLearn不错,就先按部就班的学习上边的免费教程.教程都是按照需求和步骤分组好了的,按照教程一步步走就好.
先是教安装和注册.然后会有一个选择MicroGame来给用户体验基本的Unity操作.一定要先选乐高MicroGame,更容易学到基本的东西.(里面很多东西不是Unity标准操作,只是针对乐高MicroGame简化过,让用户更容易上手)
在做到第一个乐高MicroGame的时候发生了问题.
首先只有新注册的账号才有MicroGame选项,我不是新注册的账号,所以没有在UnityHub内弹出学习MicroGame的提示.
后来发现在学习界面可以找到教程,但是教程界面的下方只提供了一个教程链接,没有网上的”打开工程”选项.折腾了半个小时,发现是因为我是第一次打开UnityHub就开始使用了,实际需要重启一下才行,把UnityHub进程完全关闭(能正常退出即可),然后再打开,才能看见下载工程的链接.(附带一提,如果像我一样首次安装Hub就安装了Unity,下次打开Hub有可能找不到,需要重新指定一下路径)
乐高MicroGame主要教给用户基本的运行模式,修改属性,添加物体移动,旋转,修改条件之类的操作,但流程和思路非常值得学习,最后还会教授如何构建和发布游戏.不过这个教程内容只有英语版,我英语完全不行,官方推荐30分钟左右可以完成学习,我一边看教程以便顺便学一下英语,加上教程学习过程中的一些小坑,实际学了10个小时左右.
MicroGame教程最好一次学习完(但如果觉得学的很吃力,建议学完一组教程休息一下),因为我英语不好,看教程内容时顺便学习英语,所以计划一上午学完,却才做了前三个,糟糕的时这个教程不知道怎么正确保存进度.
试着保存了一下,然后去做别的工作了,第二天打开发现做过的教程是有对号的完成状态.但是场景添加的东西都已经还原,没办法做后面的教程了.又回到前面的教程添加东西,但是由于第四个教程里有选择教程内容的部分,被替换的块无法被识别,最后只好老老实实的从头来过(按顺序往下走了之后,在更改收集提示的地方,只支持英文,请不要输入中文,避免啥也看不见.)
后面还遇到个问题,拆包预制件时,教程场景里的预制件看不到子物体,没办法像教程里说的那样操作.而修改预制件的话,虽然还是看不到子物体,但是子物体是可以选择的.还打开了一个新的工程确认了一下,只有教程的这个场景里的预制件有这个问题,我猜可能和乐高工具有关系.不过这个问题好在不影响教程进度,在用别的方法达到一样的效果之后,最终完成了教程.
最后的构建和发布一切顺利,而且预计半个小时实际只花了六七分钟,只是最后的提交WedGL URL实在不知道是什么东西,就把上传作品的那个链接填进去了.(结果需要填的就是这个链接)
上传到Unity网站后的Microgame可以直接在线游戏:我的第一个微游戏
Microgame结束后,后面的学习都还比较简单.这里记录一个在教程中提到的很不错的学习资源链接:
Unity的学习生态系统 正如您在本课程开始时所探索的那样,有很多方法和地方可以学习。我们希望世界上的每个创作者都可以使用Unity的学习资源。我们将所有这些都视为Unity学习生态系统。
除了 Unity Learn: Unity在线学习平台 之外,Unity学习生态系统还包括:
- Unity Connect:Unity学习者小组
- Unity Microgames:Unity微游戏 - 旨在让新用户快速轻松地在Editor中工作的指导性体验,用户可以按照Unity Editor编辑器中嵌入的教程进行操作,以更好地了解所有内容如何相互点击,同时做出自己的创意决定并一路个性化。
- Unity Hub中的“学习”屏幕:使您可以访问各种教程和学习资源(包括可以直接导入Unity的示例项目),以帮助您开始使用Unity。
- Unity文档:《 Unity用户手册》和《 Unity脚本API参考》可帮助您学习如何使用Unity编辑器及其相关服务。
- Unity Answers或Unity论坛:您可以在此处提问和搜索答案。
- Unity YouTube频道: YouTube官方频道,提供视频,以了解有关Unity的更多信息,使用Engine进行的各种项目,教程,演示等。
- Unity Blog:在Unity Technologies内部提供新闻,公告和一瞥
- Twitter上的Unity“星期二技巧”:每个星期二的创作者分享他们最喜欢的#unitytips
- 资产商店帮助:有关资产商店内容共享的帮助。
Hub里有一段时间不能对引擎添加模块,丢失了这个按钮,而且已添加的模块没有显示.尝试各种办法后,最后重新安装了Hub解决了,只要设置里的编辑器路径一样,就不用重新安装Unity,重新安装Hub大概需要两分钟?
后面就是跟着pathway继续学习,纠结Unity大学期间,在知乎上发现了一套学习资源
世嘉的游戏开发培训,jd 半价100块。
Games101,learnopengl,
b站大把的盗版付费课,国内名校的图形学、数学、物理课,
油管大把的 sdl,opengl 游戏开发教程,优质unity,ue4,blender教程,
斯坦福cs248,MIT6.837, CMU15462,15869
统统不要钱。
Udemy 的游戏开发课也就10刀, 2000元都够买千把小时课,也够把ue4,unity,blender精品课全包圆了。
随便先挑一个啃。
还满足不了你,再寻思值不值得花这3w。
3个月都没法把数学给你教明白。
但凡热门点的领域进了中国,教个基础,网课5000起,租个场子搞个住宿,就往几万飙。
本想骂脏话的,算了。
作者:成隽 链接:https://www.zhihu.com/question/401948715/answer/1309531844 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
unity3d小技巧记录
可以选中摄影机,然后按Ctrl+Shift+F对齐到视图,调节摄影机对齐后在场景视图出现的边框可以修改距离.
如果对美术资源要求不高,而且不愿意多个软件切换.可以尝试ProBuilder和ProBrush
Unity教程里,让学习者可以搜索相关DCC的”speed art”,来学习相关DCC的快速流程.如果仅是练习研究或者制作游戏原型,完全可以使用资源商店里的免费资源.Unity的资源生态还不错.(Godot要抓紧构建优质生态和使用体验的资源商店呀,这对拉赞助也很重要啊)吐槽一下,Unity商店下载资源太慢了.
C#的学习
使用Unity3D,现阶段肯定是无法绕开C#的. (发音: 撕一煞卜)
相较C++,C#更加简单,可以免于考虑一些低级需求,更注重业务本身,便利开发.C#设计时限制了一些C++中比较危险的功能,所以C#相较C++更好处理逻辑,且出了Bug也更好修一点.(注意:C++自有其优异的特性!学习C#只是因为我的职业规划指向Unity,不过C#相对简单的特性也在一定程度上左右了我的职业规划.)
有关C#的学习资源有:
- 菜鸟教程(提供在线编辑器,支持代码高亮)
- 微软C# 文档 教程(很全面,就是太厉害了,新手看着劝退)(提供在线编辑器,不仅支持高亮,还支持自动不全,贼牛!!这是这个在线编辑器的独立版,而这里可以将其嵌入到自己的网站)
- W3Cschool C# 教程(入门课免费,提供付费课程)(提供在线编辑器,且此网站提供大量在线工具在线工具库)(其在线编辑器感觉不像菜鸟教程可以高亮,而且很多在线工具稳定性不佳)
- W3Schools 教程 (仅英文) (免费,提供在线编辑器)
- W3School 中文教程(免费网站,但是C#教程页面打不开,而且这个网站的服务商最后的维护是在2018年,可能已经黄了,但是上面的其他教程都很不错,有需要可以看看,这么好的地方不维护了真是可惜.)(提供在线编辑器)
- 廖雪峰 - 编程
英文不好的可以用Chrome浏览器翻译页面,但是翻译结果就需要想象力了,不过编程这玩意,很多时候试试就灵.
我最后选择的方法是 菜鸟教程 , 然后对应 W3Cschool C#教程的目录去补充一些知识(比如三元运算),最后用微软C# 文档查缺补漏
.虽然觉得 W3Cschool 49的C#教程很值,但是在线编辑器不能高亮和处处透露着的破碎感劝退了我.(知乎说这个网站就是骗钱的)
选择菜鸟教程还有一个好处,就是有很多学习过的前辈会在下方留有笔记,有时候还是很有帮助的.
这里遇到了一点问题,安装Unity的时候自带了个VisualStudio,但是没办法用它创建C#模板项目.
学习菜鸟教程时有一步是用它生成一个简单的程序的.
C#的一些特点
- 大小写敏感, apple和Apple是不一样的.
- 每一句必须以分号结尾, “;”
- 程序的执行从 Main 方法开始.
C#变量的一些特点
-
变量要求带有数据类型
比如
int myAge;
类型参考
类型 描述 范围 默认值 值类型(Value types) 值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。 值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。 bool 布尔值 True 或 False False byte 8 位无符号整数 0 到 255 0 char 16 位 Unicode 字符 注意,它使用但引号赋值 U +0000 到 U +ffff ‘\0’ decimal 128 位精确的十进制值,28-29 有效位数 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M double 64 位双精度浮点型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D float 32 位单精度浮点型 -3.4 x 1038 到 + 3.4 x 1038 0.0F int 32 位有符号整数类型 -2,147,483,648 到 2,147,483,647 0 long 64 位有符号整数类型 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 0L sbyte 8 位有符号整数类型 -128 到 127 0 short 16 位有符号整数类型 -32,768 到 32,767 0 uint 32 位无符号整数类型 0 到 4,294,967,295 0 ulong 64 位无符号整数类型 0 到 18,446,744,073,709,551,615 0 ushort 16 位无符号整数类型 0 到 65,535 0 引用类型(Reference types) 引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。 换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:object、dynamic 和 string。 动态(Dynamic)类型 您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。 动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。 字符串(String)类型 字符串(String)类型 允许您给变量分配任何字符串值。区别于 char ,String使用双引号赋值 字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。 指针类型(Pointer types) 指针类型变量存储另一种类型的内存地址。 C# 中的指针与 C 或 C++ 中的指针有相同的功能。 -
可以在声明变量时赋值,且与基本语法特性一样,结尾要加”;”
比如
int myAge = 18;