mastertravels77 发表于 2023-1-10 08:16

unity零基础学习

提示:本人作为萌新记录unity学习路线,后期会根据学习情况不断进行修改,自学途径主要依赖siki学院。

前言

       伴随游戏行业的兴起,unity引擎的使用越来越普遍,本文章主要记录博主本人入门unity的相关记录大部分依赖siki学院进行整理。

一、认识unity引擎?

1、Unity相关信息:

   Unity的诞生:https://www.jianshu.com/p/55021d9301ab
      Unity的应用:https://baike.baidu.com/item/Unity/10793?fr=aladdin
      Unity发展:https://baike.baidu.com/item/Unity/10793?fr=aladdin#3
2、下载和安装:

本次学习应用用到的软件主要是:unity2021.2.10flc1和VS2019版本
(1)相关下载地址:

Unity中国官网 unity.cn
   国际官网unity.com(需要科学上网)
   官网:www.unity.com
(2)相关下载教程:

Unity:https://zhuanlan.zhihu.com/p/433418045
Vs2019:建议在siki学院《Unity2021零基础入门学习教程 - RollABall》课程资料里下载(3)关于unity版本说明:

   LTS(Long Term Support)——长期支持版本
      Alpha——内测版
      Beta ——公测版(不稳定,有最新功能,最新更新)
      关于不同版本的解释:https://blog.csdn.net/zistxym/article/details/99300504

二、Unity基础知识

1、创建工程

(1)点击Unity hub,新建即可



提示:若无法新建可能是未登录且没有激活许可证。操作如下



2、工程目录介绍

在新建完成后会在创建的目录下生成相关工程文件
如图所示:


      Assets: 资源(场景脚本模型)
      Library: 库(系统)
      Logs: 日志
      Packages: 导入的包
      ProjectSettings: 工程设置
      Temp: 临时文件(文件过大可以删除部分缓存)
      UserSettings: 设置
3、五个窗口面板

创建完成后会有5个窗口面板(红色方框)


Project:工程面板,存放工程的各种资源。包括:声音资源、模型资源、场景文件、材质、脚本等。
Hierarchy:层级面板,展示当前打开的场景里面有哪些东西。(里面的东西称为游戏物体)
Inspector:检视面板(或属性面板),查看一个游戏物体由哪些组件组成。
场景 -> 多个游戏物体 -> 多个组件
Scene:场景面板,显示当前场景的样子
鼠标中键:平移视角
      鼠标右键:旋转视角(环顾四周),围绕自身旋转
      Alt+鼠标左键:渲染视角,围绕当前视角前方位置
Game:游戏面板,场景运行的时候的样子
Scene文件下meta文件不可删除


右上角的layout也可以修改布局



4、创建代码和场景

(1)Project > Assets 右键选择create 创建 C# script ,并重命名为“New Name”右键即可打开

   Unity支持持的编程语:C#、Mono、JavaScript

(2*)如果使用其他版本的编译器需要去单独指定 / 代码不提示也可以用此方法解决

Edit > Preferences > External Tools (附加工具)
      在External Script Editor中有俩个选项
Open by file extension——根据文件后缀名采取相应工具打开
      Microsoft Visual Studio 2019(这个是自己安装的编译器)
      选择“Microsoft Visual Studio 2019”因为unity大多文件是C#




5、Unity中的基本模型和场景操作

(1)如何创建基本模型和如何导入复杂模型

(2)场景基本操作

   聚焦:双击游戏物体 或者 F
      放大缩小视野:鼠标滚轮
      围绕物体旋转:Alt+鼠标左键
      使用MoveTool下 移动物体
(3)视野分类

   Persp 透视视野 ISO平行视野
      在不同视野下:关于鼠标右键的不同
(4)保存(场景保存、代码保存)

   Ctrl + S
6、世界坐标系和局部坐标系

坐标系:x 左右 y 上下 z前后
局部坐标系:父物体和子物体
单位:Unity里面的坐标是以米为单位的
7、工具栏

(1)四个工具

   Q:视图工具(使用鼠标中键可以临时切换到这个恐惧)
      W:移动工具
      E:旋转工具
      R:缩放工具



(2)其他工具

   Rect Tool Transform Tool Collider Tool


      Rect Tool:修改大小——一般2D游戏使用
   Transform Tool:WER同时调出
   Collider Tool:碰撞器
(3)切换工具

   位置工具:Pivot原点 - Center中心



局部和全局坐标切换:Local - Globa
(4)切换工具步移工具

   步移工具:一段一段数值移动(快捷键:Ctrl)
      条件:世界坐标系下


      位置工具:Pivot原点 - Center中心
      局部和全局坐标切换:Local - Global

三、案例实操作

1、创建场景

   在project面板右击"Scenes"文件create>scence



(1)创建地面

①点击创建好的“Main Scene”
②在Hierarchy面板中右键3D object>Plane



③点击Plane,inspector面板会显示相关物件属性
      Position位置设置为(0.0.0)
      scale X,Z放大2倍
④创建材质使Plane更改颜色和材质
      在assets文件下创建文件“Materials”右键此文件创建Ground材质




提示:创建的Materials组件也可以直接拖动到场景里的任何物件
也可以点击目标物体在“Inspector”面板,Materials属性进行添加
   Mesh Filter:控制形状模型
      Mesh Renderer:在网格上渲染
      smooththness:控制光滑程度(值越大越光滑)


      例如:smooththness为1


      smooththness为0



相关板块间的关系



(2)创建墙体

提示:创建的Materials组件也可以直接拖动到场景里的任何物件
①在Hierarchy面板中右键3D object>Cuba
②建立一个立方体重命名为“wall”,调整立方体的“Scale”并根据需添加材质



*(3)预制体

创建多个相同物体,可以创建预制体

①在“Hierarchy”面板下创建一个物体,重命名为“wall调整好各个参数”
②创建一个文件“Prefabs”用于存放预制体
③将物体拖动在文件下,需要用到相同物体可以直接拖出预制体







(4)构建互动物体

根据前文提到的步骤,通过预制体或者直接复制的方式生成多个相同物体



2、添加物理组件

(1)碰撞检测

①在Hierarchy面板中的最下方点击“Add Component”
②搜索“Sphere Collider”点击即可添加此组件



(2)添加物理组件

①在Hierarchy面板中的最下方点击“Add Component”,搜索“Rigidbody”钢铁组件进行添加
添加刚体组件作用:模拟物理效果(重力、摩擦力、弹力、动力等),可以通过刚体控制小球的运动


渲染模型和碰撞模型需要分开

同时碰撞监测消耗越小,运行越流畅
这里的模型一套精细建模用于渲染 ,一套低模碰撞监测穿模
减少穿模情况

调整摄像机位置
3、代码组件

建议代码零基础学生

模仿不求甚解, 后期学习C#语法基础
(1)添加删除代码组件

①添加两种方式:
      a、在Project里面
          Project > Assets 右键选择create 创建 C# script ,并重命名为“New Name”右键即可打开
      b、在Inspector面板
          在Inspector面板最低端点击“Add Component”添加组件
②删除两种方式:
      a、删除代码
      b、删除组件
(2)脚本的基本结构

   a、引用
      b、脚本名字(类名)(类名和脚本名保持一致)
      c、什么是方法
      d、Start方法和Update方法 - 系统方法(事件方法)



(3)控制台面板 - Console

   a、怎么打开—“Crtl+shift+C” 可以快速唤出可控制面板
      b、怎么输出—
      c、收缩输出—
      d、注释——
(4)在代码中获取刚体组件

在Player脚本中
a、第一种方法 - 通过代码获取
private Rigidbody rd;
rd = rd = GetComponent<Rigidbody>();
b、第二种方法 - 通过拖拽
public Rigidbody rd;
(5)给小球添加力

a、小球的碰撞监测——在player脚本里写一个系统事件
privatevoidOnCollisionEnter(Collision collision){
      Debug.Log("发生碰撞了 OnCollisionEnter");if(collision.gameObject.tag =="Food"){Destroy(collision.gameObject);}}collision collision来检测来储存碰撞到的信息
添加标签 “Food”
(6)让物体旋转

在预制体里添加“food”脚本,每个实例都会有此脚本
transform.Rotate是旋转
vector3.up围绕自身上方的旋转

总结

未完工暂无
页: [1]
查看完整版本: unity零基础学习