当前位置: 首页 > 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 配套的贴图文件
在这里插入图片描述


相关文章:

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

Unity3D功能开发入门系列(一) 一、开发环境(一)安装 Unity(二)创建项目(三)Unity 窗口布局 二、场景与视图(一)场景(二)游戏物体&…...

【Python体验】第五天:目录搜索、数据爬虫(评论区里写作业)

文章目录 目录搜索 os、shutil库数据爬虫 request、re作业:爬取案例的top250电影的关键信息(名称、类型、日期),并保存在表格中 目录搜索 os、shutil库 os 模块提供了非常丰富的方法用来处理文件和目录。 os.listdir(path)&#x…...

elasticsearch性能调优方法原理与实战

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…...

python print 函数参数:sep 自定义分隔符,end 自定义结尾符

1. 简述 print 函数可以将内容打印到标准输出&#xff0c;如果不指定 end 参数&#xff0c;默认在输出的内容之后加一个 “回车符\n”。 以下是 print 函数常用的参数用法&#xff1a; print(object, …, sepstr, endstr) object, …&#xff1a;要打印的内容&#xff0c;可以…...

git 使用场景

拉取分支 feature 以develop为基础 git checkout -b feature-x develop git checkout demobranch git branch 合并分支 idea 在feature 选 develop 合并到feature...

Ubuntu22.04 Docker更换阿里云镜像

由于运营商网络原因&#xff0c;会导致您拉取Docker Hub镜像变慢&#xff0c;甚至下载失败。那么可以更换阿里云镜像加速器&#xff0c;从而加速官方镜像的下载。 1.获取镜像加速器地址 登录容器镜像服务控制台&#xff0c;在左侧导航栏选择镜像工具 > 镜像加速器&#xf…...

Windows下Rust OpenCV环境配置

首发于Enaium的个人博客 安装Chocolatey 首先我们需要安装Chocolatey&#xff0c;Chocolatey是一个Windows的包管理器。 我们点击右上角的Install进入到Installing Chocolatey&#xff0c;选择Individual 复制命令 Set-ExecutionPolicy Bypass -Scope Process -Force; [Sys…...

PostgreSQL(二十三)TOAST技术

目录 一、TOAST简介 二、TOAST的存储方式 1、存储方式概述 2、实验&#xff1a;创建TOAST表 三、TOAST的4种压缩策略 1、策略说明 2、TOAST表额外的三个字段 四、TOAST表的计算方式 1、说明 2、实验&#xff1a;计算表大小 五、TOAST表的特点 1、优点 2、缺点 3、…...

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《海上风氢系统与沿海电网能量协同优化调度》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…...

MySQL update set语句中 逗号与and的区别

语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法&#xff1a; UPDATE table_name SET column1 value1, column2 value2, ... WHERE condition; 参数说明&#xff1a; table_name 是你要更新数据的表的名称。column1, column2, ... 是你要更新的列的名称。v…...

C++面试---小米

一、static 关键字的作用&#xff0c;及和const的区别 static关键字作用&#xff1a; 1、在类的成员变量前使用&#xff0c;表示该变量属于类本身&#xff0c;而不是任何类的实例。 2、在类的成员函数前使用&#xff0c;表示该函数不需要对象实例即可调用&#xff0c;且只能访问…...

Java 实现 AVL树

在二叉平衡树中&#xff0c;我们进行插入和删除操作时都需要遍历树&#xff0c;可见树的结构是很影响操作效率的。在最坏的情况下&#xff0c;树成了一个单支树&#xff0c;查找的时间复杂度成了O(N)&#xff0c;建树跟没建树一样。那么是不是有什么办法可以建一个树避免这种情…...

CNN卷积网络实现MNIST数据集手写数字识别

步骤一&#xff1a;加载MNIST数据集 train_data MNIST(root./data,trainTrue,downloadFalse,transformtransforms.ToTensor()) train_loader DataLoader(train_data,shuffleTrue,batch_size64) # 测试数据集 test_data MNIST(root./data,trainFalse,downloadFalse,transfor…...

深入理解Java中的时间处理与时区管理

在Java开发中&#xff0c;时间处理和时区管理是常见的需求&#xff0c;特别是在全球化应用中。Java 8引入了新的时间API&#xff08;java.time包&#xff09;&#xff0c;使时间处理变得更加直观和高效。本文将详细介绍Java中的时间处理与时区管理&#xff0c;通过丰富的代码示…...

虚拟机windows server创建域

目录 准备工作 一、新建域控制器 二、提升为域控制器添加新林 三、新建组织单位&#xff08;OU&#xff09;&#xff0c;用户 四、将计算机加域 五、在域控中管理计算机 六、在域控中配置组策略 七、域内计算机验证组策略配置 准备工作 安装域前&#xff0c;如果有DNS…...

Java 集合框架:Java 中的 Set 集合(HashSet LinkedHashSet TreeSet)特点与实现解析

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 017 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…...

springboot智能健康管理平台-计算机毕业设计源码57256

摘要 在当今社会&#xff0c;人们越来越重视健康饮食和健康管理。借助SpringBoot框架和MySQL数据库的支持&#xff0c;开发智能健康管理平台成为可能。该平台结合了小程序技术的便利性和SpringBoot框架的快速开发能力&#xff0c;为用户提供了便捷的健康管理解决方案。 通过智能…...

LetterBox图像预处理方法

LetterBox图像预处理方法就是要将不同分辨率的图像转换成固定分辨率,比如v8输入网络的固定分辨率为6406403,因此这里分享一下默认情况下对训练集、验证集和测试图片做的letterBox的方法。 1.LetterBox-Train 对于训练集,默认输入网络的图像尺寸为640640,假设有一张7201280…...

C++第五篇 类和对象(下) 初始化列表

目录 1.再探构造函数 2.类型转换 3.static成员 4.友元 friiend 1.再探构造函数 (1).之前我们实现构造函数时&#xff0c;初始化成员变量主要使用函数体内赋值&#xff0c;构造函数初始化还有一种方式&#xff0c;就是初始化列表&#xff0c;初始化列表的使用方式是以一个冒…...

C#中的通信

上位机应用开发-串口通信1、基于C#的串口通信对象:SerialPort 2、字段属性 PortName:获取或设置通信端口 BaudRate:获取或设置串行波特率-DataBits:获取或设置每个字节的标准数据位长度 Parity:获取或设置奇偶校验检查协仪I-StopBits;获取或设置每个字节的标准停止位数 3、…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...