• Unity笔记(1)


    视频链接:

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

    目录

    1、Unity场景构成

    2、3D模型网站

    3、Transform组件: 

    4、 MeshRenderer组件

     5、添加其他组件

     6、摄像机

    7、编写脚本

     8、构建游戏


    1、Unity场景构成

     

    2、3D模型网站

    sketchfab.com

     

    turbosquid.com 

     

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

    3、Transform组件: 

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

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

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

    4、 MeshRenderer组件

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

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

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

    这里我们可以修改材质的颜色,或者指定一张纹理贴图,

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

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

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

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

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

     5、添加其他组件

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

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

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

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

    使用canvas来绘制二维用户界面,

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

     6、摄像机

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

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

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

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

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

    7、编写脚本

     脚本功能:

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

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

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

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

     

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

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

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

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

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

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

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

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

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

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

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

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

     可以看到这样的效果

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

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

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

     8、构建游戏

    我们可以点文件构建,

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

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

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

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

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

     最后视频up主想说的话:

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

  • 相关阅读:
    前端无需install快速调试npm包,Console-Import使用
    无需公网IP,实现公网SSH远程登录MacOS【内网穿透】
    【C++必知必会】异常处理机制,你了解多少?
    asp.net core 8.0 使用 Autofac ioc 容器 具体实例
    深度学习——day39 综述——(2019 计算机学报)深度卷积神经网络的发展及其在计算机视觉领域的应用_张顺
    泛微E9,独立选择框对应数据库表查询
    数据结构之洗牌算法
    STM32滴答定时器SysTick精准延时,兼容HAL库和标准库
    嵌入式养成计划-45----QT--事件机制--定时器事件--键盘事件和鼠标事件--绘制事件
    自媒体文章用的图片加水印怎么弄吗?分享两个实用方法
  • 原文地址:https://blog.csdn.net/qq_51701007/article/details/126393845