Unity笔记(1)

视频链接:

Unity 10分钟快速入门 #U3D #Unity3D_哔哩哔哩_bilibili 

目录

1、Unity场景构成

2、3D模型网站

3、Transform组件: 

4、 MeshRenderer组件

 5、添加其他组件

 6、摄像机

7、编写脚本

 8、构建游戏


1、Unity场景构成

Unity笔记(1)_第1张图片

 Unity笔记(1)_第2张图片

2、3D模型网站

sketchfab.com

 Unity笔记(1)_第3张图片

turbosquid.com 

 Unity笔记(1)_第4张图片

        除了可以使用像球体这样基本的几何形状,我们也可以从外部导入各种三维模型文件,比如从三维建模软件中导出成FBX格式,直接拖拽到unity中使用。上述网站有很多免费高质量模型, 但是使用的时候需要注意版权许可。

3、Transform组件: 

Unity笔记(1)_第5张图片首先我们可以在这里直接输入物体的三维坐标,沿着XYZ轴的旋转角,还有XYD方向上的缩放,我们也可以直接在场景中拖动这些箭头来进行移动。

Unity笔记(1)_第6张图片

 

修改左上角的这些按钮,允许我们切换不同的工具,快捷键是QWERT,它们分别用来对物体的位置旋转和缩放进行调整。 

Unity笔记(1)_第7张图片

另外在左侧的面板中,我们可以将一个游戏对象拖拽成另一个游戏对象的子节点,这样所有的子节点会随着父亲一同移动旋转和缩放,就这里身体的运动会,同时带动手臂的移动。Unity笔记(1)_第8张图片

 

4、 MeshRenderer组件

Unity笔记(1)_第9张图片

 之前提到的另一个组件Mesh,我们知道它是用来渲染三维物体的或者专业的术语,叫Mash/三角网

Unity笔记(1)_第10张图片 

Mash中有一个非常重要的属性,Material材质材质直接决定了物体表面的外观,与它相关的设置也直接显示在面板的最下方,这里的材质,由于是unity默认创建的,我们无法直接修改,

Unity笔记(1)_第11张图片

不过我们可以在下方的工程窗口,中点右键创建一个新材质,并拖拽到物体上来使用,

Unity笔记(1)_第12张图片

 

这里我们可以修改材质的颜色,或者指定一张纹理贴图,Unity笔记(1)_第13张图片

并且我们可以设置材质的金属属性,光泽度法线贴图,高度贴图等等,

Unity笔记(1)_第14张图片

 

另外,这里的下拉框,于是我们切换不同的shader程序,Shader是运行在GPU上的代码,里面包含了物体表面的光照和颜色计算,最基本最常用的shader自然是这里默认的标准光照模型,

Unity笔记(1)_第15张图片

 

不过我们也可以选择其他的Shader程序,

Unity笔记(1)_第16张图片

比如Unlit Shader不会参与光照计算,因此不会产生阴影。 

Unity笔记(1)_第17张图片 

我们也可以自己写一个shader或者安装第三方插件,比如使用卡通画渲染的卸载程序来实现各种不同的视觉效果。

Unity笔记(1)_第18张图片

 

 5、添加其他组件

Unity笔记(1)_第19张图片

其它的组件加入可以带来更多的功能,我们可以点击这里的添加组件按钮里面分类列出的所有支持的组件,

Unity笔记(1)_第20张图片

 

比如我们可以添加一个叫做rigibody刚体的组件,让游戏对象参与物理引擎的计算,这样物体会受到重力下降、碰撞到其他物体反弹等等,

Unity笔记(1)_第21张图片

 

在菜单中,我们还可以找到各种其他的组件,我们可以用animator来控制管理角色的动画

Unity笔记(1)_第22张图片

audio source给游戏对象添加声音,

Unity笔记(1)_第23张图片

使用canvas来绘制二维用户界面,
Unity笔记(1)_第24张图片

使用article system来产生粒子效果等等 

Unity笔记(1)_第25张图片

 

 6、摄像机

Unity笔记(1)_第26张图片

 在场景中的另一个基本要素,摄像机。摄像机展示了游戏中玩家的视角,一个场景中如果没有摄像机,自然不会显示任何内容,我们除了可以用之前的方法修改摄像机的位置,旋转角之外,还可以修改摄像机清除背景使用的颜色、摄像机的投影类型、视角大小等等,

Unity笔记(1)_第27张图片

 

同时,我们也可以通过给摄像机添加post process layer组件,

Unity笔记(1)_第28张图片

配合场景中的post process volumes来给镜头添加后期处理的特效,

Unity笔记(1)_第29张图片 

比如这里我们用到环境,光周照,景深还有光晕的效果,  

Unity笔记(1)_第30张图片 

讲到这里,我们的场景都还是完全静态的,如果我们想给游戏加入动态的逻辑,比如响应玩家的按键操作,实现游戏的基本玩法,编程自然是必不可少的步骤。

7、编写脚本

Unity笔记(1)_第31张图片 脚本功能:

Unity笔记(1)_第32张图片

在unity中,我们可以通过C#脚本或者也叫Mono Script来进行编程,

Unity笔记(1)_第33张图片

我们可以选中一个游戏对象点击添加组键,然后输入名字来快速创建一个脚本,

Unity笔记(1)_第34张图片 

当然,我们可以在工程窗口中点右键创建C#脚本,然后再将脚本拖拽到游戏对象上,

Unity笔记(1)_第35张图片

双击脚的名字,可以在IDE中打开并编辑,

 Unity笔记(1)_第36张图片

 

它可以看到脚本都继承于MonoBehaviour 

Unity笔记(1)_第37张图片

里面定义了两个非常重要的函数:

update函数,每一帧都会被调去,我们可以在这里实现基本的游戏逻辑,

 

Start函数只会在最开始的时候被调用一次,通常被用作初始化操作,

Unity笔记(1)_第38张图片

 

这里我们可以在start中调用debug.Log输出一段调试信息,

 

Debug类定义了与调试相关的各种工具函数运行游戏,我们可以看到下方控制台输出的文本,这里印证了我们的代码被成功执行,

Unity笔记(1)_第39张图片

 

我们现在实现一个基本的怪物移动逻辑,

这里我们调用input.get k去判断,在这一帧中,键盘上的W键是否被按下,如果是我们给怪物施加一个向前的作用力,

Unity笔记(1)_第40张图片

 

这里我们会用到之前提到的rigibody组件,我们可以在start函数中获取这个组件,并存放在rb变量中,然后我们调用它的AddForce函数来添加一个作用力,这个作用力的方向是物体面朝的方向,乘以这里定义的一个参数,加速度,之后可以在测试中微调这个参数,

Unity笔记(1)_第41张图片

 

同样的,当a键被按下时,我们都要用transform的Rotate函数让物体沿着Y轴逆时针旋转,旋转的角度等于这里定义的旋转速度乘上时间,关于时间的计算,我们调要用time点掉的time获取上一帧与这一帧的时间差,

Unity笔记(1)_第42张图片

 

注意,这里的时间差并不是一个常量,由于各种因素的影响,我们的游戏并不总是运行在同一帧率下

Unity笔记(1)_第43张图片

 

最后我们用同样的方法,实现向右旋转的逻辑运行程序,

Unity笔记(1)_第44张图片

 可以看到这样的效果

Unity笔记(1)_第45张图片

 

另外,我们可以将之前定义的这两个参数设置成public,

Unity笔记(1)_第46张图片 

 

这样我们可以在编辑器中实时修改它们,对调餐非常方便,

Unity笔记(1)_第47张图片

 

当我们完成游戏的开发,打算将游戏打包并分享给别人时,我们就需要打包游戏文件。

 8、构建游戏

Unity笔记(1)_第48张图片

我们可以点文件构建,

Unity笔记(1)_第49张图片

 

设置快捷键是ctrl+shift+B,

Unity笔记(1)_第50张图片

 

在窗口上方,我们可以指定游戏中需要打包的所有场景,位于列表最上面的是进入游戏后加载的第一个场景,

Unity笔记(1)_第51张图片

 

在下方我们可以切换目标平台,你可以选择PC \mac上运行的独立版本,移动端的安卓ios版本或者PS Xbox之类的主机游戏版本,前提需要安装必要的平台开发包,

Unity笔记(1)_第52张图片

 

最后,点击下方的构建按钮即可。

Unity笔记(1)_第53张图片

希望大家看到这篇笔记能够结合视频对unity有一个整体上的认识。

 最后视频up主想说的话:

        这里忽略了很多细节,像unity中的每个子系统,图形、声音、动画、物理网络等等,都有太多东西值得去推敲,之后我们也可以单独选出来讲一讲关于unity的学习,我个人比较推荐去研究一下官方的样例工程,这几十个工程涵盖了各种不同的游戏类型,哪怕是阅读一下其中的源代码也能带给你很大收获,英文文档永远是第一份参考资料,Unity的文档,无论从质量详细程度上都是可圈可点的,有英文功底的小伙伴也可以去看看官方的教学视频。

你可能感兴趣的:(#,Unity基础教程,unity,游戏引擎)