许铮

学习 / 生活 / 工作 / 娱乐

Unity3D学习

本来是打算学习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可以直接在线游戏:我的第一个微游戏

image-20201129153504244

Microgame结束后,后面的学习都还比较简单.这里记录一个在教程中提到的很不错的学习资源链接:

Unity的学习生态系统 正如您在本课程开始时所探索的那样,有很多方法和地方可以学习。我们希望世界上的每个创作者都可以使用Unity的学习资源。我们将所有这些都视为Unity学习生态系统代表Unity学习生态系统元素的缩略图集合:论坛,YouTube,学习,中心,连接,文档和微型游戏。 除了 Unity Learn: Unity在线学习平台 之外,Unity学习生态系统还包括:

  • Unity Connect:Unity学习者小组
  • Unity Microgames:Unity微游戏 - 旨在让新用户快速轻松地在Editor中工作的指导性体验,用户可以按照Unity Editor编辑器中嵌入的教程进行操作,以更好地了解所有内容如何相互点击,同时做出自己的创意决定并一路个性化。
  • Unity Hub中的“学习”屏幕:使您可以访问各种教程和学习资源(包括可以直接导入Unity的示例项目),以帮助您开始使用Unity。
  • Unity文档:《 Unity用户手册》和《 Unity脚本API参考》可帮助您学习如何使用Unity编辑器及其相关服务。
  • Unity AnswersUnity论坛:您可以在此处提问和搜索答案。
  • 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对齐到视图,调节摄影机对齐后在场景视图出现的边框可以修改距离.

如果对美术资源要求不高,而且不愿意多个软件切换.可以尝试ProBuilderProBrush

Unity教程里,让学习者可以搜索相关DCC的”speed art”,来学习相关DCC的快速流程.如果仅是练习研究或者制作游戏原型,完全可以使用资源商店里的免费资源.Unity的资源生态还不错.(Godot要抓紧构建优质生态和使用体验的资源商店呀,这对拉赞助也很重要啊)吐槽一下,Unity商店下载资源太慢了.

C#的学习

使用Unity3D,现阶段肯定是无法绕开C#的. (发音: 撕一煞卜)

相较C++,C#更加简单,可以免于考虑一些低级需求,更注重业务本身,便利开发.C#设计时限制了一些C++中比较危险的功能,所以C#相较C++更好处理逻辑,且出了Bug也更好修一点.(注意:C++自有其优异的特性!学习C#只是因为我的职业规划指向Unity,不过C#相对简单的特性也在一定程度上左右了我的职业规划.)

有关C#的学习资源有:

英文不好的可以用Chrome浏览器翻译页面,但是翻译结果就需要想象力了,不过编程这玩意,很多时候试试就灵.

我最后选择的方法是 菜鸟教程 , 然后对应 W3Cschool C#教程的目录去补充一些知识(比如三元运算),最后用微软C# 文档查缺补漏

.虽然觉得 W3Cschool 49的C#教程很值,但是在线编辑器不能高亮和处处透露着的破碎感劝退了我.(知乎说这个网站就是骗钱的)

选择菜鸟教程还有一个好处,就是有很多学习过的前辈会在下方留有笔记,有时候还是很有帮助的.

这里遇到了一点问题,安装Unity的时候自带了个VisualStudio,但是没办法用它创建C#模板项目.

学习菜鸟教程时有一步是用它生成一个简单的程序的.

C#的一些特点

  1. 大小写敏感, apple和Apple是不一样的.
  2. 每一句必须以分号结尾, “;”
  3. 程序的执行从 Main 方法开始.

C#变量的一些特点

  1. 变量要求带有数据类型

    比如 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) 引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。 换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:objectdynamicstring  
    动态(Dynamic)类型 您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。 动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。  
    字符串(String)类型 字符串(String)类型 允许您给变量分配任何字符串值。区别于 char ,String使用双引号赋值 字符串(String)类型是 System.String 类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和 @引号。  
    指针类型(Pointer types) 指针类型变量存储另一种类型的内存地址。 C# 中的指针与 C 或 C++ 中的指针有相同的功能。  
  2. 可以在声明变量时赋值,且与基本语法特性一样,结尾要加”;”

    比如 int myAge = 18;

最近的文章

windows批处理记录

实际工作中,为了方便应用,偶尔会使用一些批处理,但是不总用就忘了,学到的部分就先记到这里.常用代码毕竟批处理对于复杂的东西不那么方便,经常还是用python或者其他方式作为主攻,批处理辅助,所以获得拖拽的文件信息是必不可少的.我经常用下面的内容作为起手式.@echo offecho 在批处理目录运行 cd /d %~dp0echo ---当前文件echo 当前路径: %CD%echo BAT路径: %0echo 取文件名(名+扩展名): %~0 echo 取全路径: %~f0 ech...…

笔记继续阅读
更早的文章

绝对值得一起玩起来的东西

免费便捷强大有趣,玩的开心.Web渲染引擎 Babylon.js着色器玩具 Shadertoy Shadertoy使用说明 大佬列表 美人鱼在线编辑器Mermaid Live Editor 美人鱼文档Godot游戏引擎 Godot Engine…

笔记继续阅读