当前位置: 首页 > news >正文

【Unity】3D功能开发入门系列(一)

Unity3D功能开发入门系列(一)

  • 一、开发环境
    • (一)安装 Unity
    • (二)创建项目
    • (三)Unity 窗口布局
  • 二、场景与视图
    • (一)场景
    • (二)游戏物体
    • (三)3D 视图
    • (四)世界坐标系
    • (五)视野中心
    • (六)透视与正交
  • 三、游戏物体
    • (一)3D 原生物体
    • (二)工具选项栏的使用
    • (三)更多操作
  • 四、模型
    • (一)网格
    • (二)材质
    • (三)纹理
    • (四)外部模型
    • (五)更多细节
    • (六)FBX的使用
      • (1)第一种使用方式:直接拖拽
      • (2)第二种使用方式:材质替换
      • (3)第三种使用方式:分解重组

一、开发环境

(一)安装 Unity

在这里插入图片描述

  1. 安装 UnityHub 启动器(需注册账号)
  2. 打开 UnityHub 后,安装 Unity 编辑器,推荐 LTS 版本(Long-term Support)
    在这里插入图片描述
    在这里插入图片描述

(二)创建项目

  1. 打开UnityHub,检查账户是否登录,检查许可证是否到期(到期就再激活个人版)
  2. 点击新建即可
  3. 下次在项目列表里打开即可

(三)Unity 窗口布局

在这里插入图片描述

  • 恢复默认布局
    在这里插入图片描述
  • 调大页面字体
    在这里插入图片描述

二、场景与视图

(一)场景

场景Scene,即游戏中的一处场景、关卡
创建项目时,默认创建了一个场景:SampleScene,只有一个主摄像机平行光源
在这里插入图片描述

(二)游戏物体

游戏物体GameObject,即游戏中的任何角色、道具、建筑等
1. 创建
在这里插入图片描述
在这里插入图片描述
2. 操作

  • 选择物体,以橙色轮廓显示
    在这里插入图片描述

  • 右键 Hierarchy 中的物体,Remane、Duplicate(复制/克隆)、Delete

  • 右侧 Inspecter 窗口(物体组件信息),观察物体的做坐标
    在这里插入图片描述

(三)3D 视图

1. 视觉辅助

  • 导航器 Gizmo,表示世界坐标的方向
  • 栅格 Grid,表示XZ坐标平面
  • 天空盒 Skybox,表示游戏世界的背景
    在这里插入图片描述
    2. 视图相关操作
  • 旋转视图:Alt+LMB(Left Mouse Button)
  • 缩放视图:鼠标滚轮、Alt+RMB
  • 平移视图:MMB(鼠标中键)

3. 导航器相关操作

  • 恢复方向按 Shift + 点中间的小方块
  • 视图:点 Y 轴
  • 视图:点 X 轴
  • 视图:点 Z 轴
    在这里插入图片描述

(四)世界坐标系

  • 3D游戏世界的坐标系:左手坐标系
  • 物体坐标,由(x,y,z)定义,也可以直接在 Inspector 窗口指定
  • 游戏中的方向感:Y轴代表上下,X/Z轴代表 东西南北

(五)视野中心

视野中心,即当前 3D 视图的中心点。

  • 在旋转视图时,视图绕着视图中心旋转。在 Unity 中,不支持绕着某个物体旋转视图。但如果想绕着一个物体四周旋转:

法一:中键点击物体,视角会自动移过去,再旋转
法二:选中物体,按 F键 ,置于视图中心,再旋转

  • 充当出生点:添加一个新物体,物体位于视图中心,而不是在(0,0,0)

(六)透视与正交

(1)透视图下,物体 “近大远小” ;正交视图下,物体的显示与距离无关

  • 透视视图 Perspective,近大远小
  • 正交视图 Orthographic,又称等距视图 lsometric
    常用于物体的布局、对其操作 —— 正交顶视图、正交右视图、正交前视图

在这里插入图片描述
(2)透视、广角设定
摄像机的广角 Field(默认为60°)
广角越大,视觉畸变越厉害。可以设为 30° ~ 40°
在这里插入图片描述


三、游戏物体

(一)3D 原生物体

1. Unity自带的几种基本模型

  • Cube,立方体
  • Sphere,球体
  • Capsule,胶囊体
  • Cylined,圆柱体
  • Plane,平面

2. Unity尺寸单位,约定为1米

== 3. 原生模型仅用于练习,真正的建模应该在建模软件中制作==
CG建模软件:3Dmax、Maya、Blender、Cinema4D、ZBrush……

(二)工具选项栏的使用

在这里插入图片描述
== 1. 移动工具==

  • 沿坐标轴移动
  • 坐标平面内移动
    在这里插入图片描述
  • 可以在 Inspecter 里精确指定,或者 Reset 重置
    在这里插入图片描述
  • 当物体位置重叠时,最好在 Hierarchy 窗口选中物体,即使物体被遮挡,也是可以操作的
    在这里插入图片描述

2. 旋转工具

  • 逆时针为正,顺时针为负
  • 可以在 Inspector 里精确指定
  • 按住 Ctrl 键时,角度增量为 15°
    在这里插入图片描述
    栅格吸附设置,可以指定一次可旋转的刻度
    在这里插入图片描述
    3. 缩放工具
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

另:

  • 快捷键 W、E、R
  • 操作模式,保持默认
    Pivot 轴心 / Center 中心点
    Global 世界坐标系 / Local 局部坐标系
    在这里插入图片描述

(三)更多操作

1. 多选

  • 按 Ctrl / Shift 键,点选
  • 在 3D 视图中,鼠标框选

2. 复制

  • 选中物体, Ctrl + D 复制物体
  • 右键 -> Duplicate

3. 聚焦

  • 选中物体,按 F 键,置于视野中心+拉近显示
  • 选中物体,按中键,只置于视野中心,大小显示不变
  • 在 Hierarchy 中双击节点(物体)

4. 激活 Activate

  • 选中物体,在 Inspector 中 激活/禁用 物体
    在这里插入图片描述
    在这里插入图片描述

5. 对齐
进入 正交顶 / 右 / 后视图,方便观察

  • 小练习
    在这里插入图片描述
  • AF 插件
    在这里插入图片描述

四、模型

(一)网格

1. 网格 Mesh,存储了模型的形状数据

  • 模型的形状,由若干个小面围合而成
  • 模型是中空
  • Mesh 中包含了面、顶点坐标、面的法向等数据

2. 在 Unity 中观察模型的网格

  • Shaded 着色模式,显示表面材质
    在这里插入图片描述

  • Wireframe 线框模式,仅显示网格
    在这里插入图片描述

  • Shaded Wireframe 线框着色模式
    在这里插入图片描述

  • 显然,任何物体的表面都是由若干三角面围成的
    在这里插入图片描述
    面数越多,物体表面越精细、GPU负担也越重(高模:面数极多、高精度的模型)

(二)材质

1. 材质 Material,定义了物体的表面细节

  • 颜色
  • 金属 / 非金属
  • 光滑 / 粗糙
  • 透明 / 半透明 / 不透明
  • 凹陷 / 突起

2. 如何给物体添加一个材质

  • 添加一个目录
    在这里插入图片描述

  • 添加一个材质 Create / Material
    在这里插入图片描述
    在这里插入图片描述

  • 给物体指定材质
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

注意:将资源拖到检查器的操作,中途一定不要松手,不然就成了选中操作。或者,先锁定 Inspector,拖拽完再解锁
在这里插入图片描述

(三)纹理

纹理 Texture,也称贴图,用一张图定义物体的表面颜色

  • 添加贴图
    在这里插入图片描述
    在这里插入图片描述
  • 删除贴图
    在这里插入图片描述

建模师提供的模型,本身已经带了网格、材质、贴图

(四)外部模型

  1. Unity 支持各种 CG 建模软件:3Dmax、Maya、Blender、Cinema4D、ZBrush…
    标准格式:FBX
    在建模软件中,将模型导出为 FBX 格式即可

  2. 演示

  • 添加 Models 目录,添加模型 (*.fbx)贴图文件
    在这里插入图片描述
  • 观察
  • 在 fbx 文件中,包含了 Mesh 和 Material
  • 独立在外的贴图文件
  • 右下角 Preview 预览窗口
    在这里插入图片描述
  • 在 Project 窗口中,调节显示
    在这里插入图片描述
  • 使用
    在这里插入图片描述

(五)更多细节

1. 正面、背面
在 Unity 中,一个平面是没有厚度的,正面可见、背面透明,或者说平面的背面不会被渲染
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 默认材质
默认的,物体具有一个材质 Default-Material(Unity自带),如果没有任何材质,则以紫色显示
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(六)FBX的使用

(1)第一种使用方式:直接拖拽

1. 演示
选择 *.fbx 文件,直接拖到层级窗口
观察节点图标
选中节点,观察 Inspector 中的操作按钮
在这里插入图片描述
在这里插入图片描述
2. 贴图

  • 有的模型需要贴图文件
  • 贴图文件的路径是约定好的,与 fbx 相同目录,或者同级 Textures 目录的子目录
    在这里插入图片描述
    3. 材质
    有的模型定义了多个材质,在 Materials 属性中定义了一个数组
    在这里插入图片描述

(2)第二种使用方式:材质替换

1. 材质的重映射Remap
选中 *.fbx 文件
在 Inspector 中切到 Materials 属性,Use Embeded Materials,On Demand Remap(映射新材质)
点 Apply 应用设置
在这里插入图片描述
2. 使用外部材质
选中 fbx 文件
Location :Use External Materials 使用外部材质
点 Apply 应用,则将内嵌材质解压缩到 Materials 目录
直接修改 Materials 目录下的材质文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)第三种使用方式:分解重组

选择 fbx 中的网格
选择 fbx 中的材质,或者自定义一个材质
如果存在贴图,则使用 fbx 配套的贴图文件
在这里插入图片描述


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【课程系列07】某乎AI大模型全栈工程师-第7期
  • 手写chatGPT——fetch解析text/event-stream会话流并逐字回显到页面——js技能提升
  • 【C++BFS算法】2998. 使 X 和 Y 相等的最少操作次数
  • Redis作为缓存,如何与MySql的数据进行同步?
  • 7 postgresql 10版本 分区表使用场景、创建删除、注意事项
  • 熟悉简单测试面经
  • 代码随想录第二十一天|动态规划(5)
  • 3.2.2 最短路径 堆优化版Djkstra算法
  • 快速解密哈希算法利器Hasher:解密MD5、SHA256、SHA512、RIPEMD160等最佳工具
  • ChatTTS文本转语音本地部署结合内网穿透实现远程使用生成AI音频
  • sql注入安全作业
  • LearnOpenGL-入门章节学习笔记
  • C语言程序设计-[5] 输入输出语句
  • ShardingSphere 内核工作原理
  • 极简聊天室-websocket版(双向通信)
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • JavaScript新鲜事·第5期
  • Netty 4.1 源代码学习:线程模型
  • npx命令介绍
  • PermissionScope Swift4 兼容问题
  • Solarized Scheme
  • Twitter赢在开放,三年创造奇迹
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 阿里云应用高可用服务公测发布
  • 给新手的新浪微博 SDK 集成教程【一】
  • 将 Measurements 和 Units 应用到物理学
  • 力扣(LeetCode)357
  • 聊聊hikari连接池的leakDetectionThreshold
  • 温故知新之javascript面向对象
  • 原生js练习题---第五课
  • 湖北分布式智能数据采集方法有哪些?
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • (4) PIVOT 和 UPIVOT 的使用
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (二)Linux——Linux常用指令
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (理论篇)httpmoudle和httphandler一览
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (一) springboot详细介绍
  • (转)用.Net的File控件上传文件的解决方案
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .net 流——流的类型体系简单介绍
  • .NET学习全景图
  • .Net转前端开发-启航篇,如何定制博客园主题
  • ;号自动换行
  • @Autowired 与@Resource的区别
  • @Builder用法
  • @PostConstruct 注解的方法用于资源的初始化
  • [20150707]外部表与rowid.txt
  • [Angular] 笔记 8:list/detail 页面以及@Input
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [C++][数据结构][算法]单链式结构的深拷贝
  • [Day 26] 區塊鏈與人工智能的聯動應用:理論、技術與實踐