第三章 游戏对象基本操作

news2024/10/6 5:59:36

创建游戏世界的第一步,就是创建一个一个的游戏对象。当然,大部分的游戏对象都是3D模型,是需要先导入到Unity工程里面后再使用的。这里,我们使用Unity自带的一些基本游戏对象来说明场景中的一些基本操作。在DirectX的课程中,我们讲过,游戏物体的最基本的操作就是三个世界变换:移动,旋转和缩放。至于取景变换和投影变换主要由摄像机对象来完成的,我们可以调整摄像机的位置属性和其他属性来间接的调整这两个变换。

首先,我们先来研究一下移动,旋转和缩放三个世界变换矩阵。我们通过菜单栏GameObject -> 3D Object -> Cube来创建一个立方体进行演示。

接下来,我们就会在层次视图和场景视图中看到新创建的立方体游戏对象。

同时,我们还可以在检视视图中看到立方体的一些属性

上图中,每一个组件名称的前面都有一个可以折叠的三角按钮,可以方便我们折叠组件哦。在检视视图中的第一个“Transform”组件中的“Position”的XYZ值都改成0,也就是说,这个立方体处在世界坐标系的原点(0,0,0)的位置。这个如果大家看过DirectX的课程内容的话,对这个应该非常熟悉了,不需要过多的解释了。有了参照物之后,我们就容易进行场景操作的讲解了。Cube(Mesh Filter)是网格组件,代表了立方体的网格信息;Mesh Renderer是渲染组件,用于显示立方体;Box Collider是碰撞体组件,用于碰撞检测。这个组件的使用,我们会在后面的章节中介绍。

为了能够更好的编辑Cube立方体,我们需要能够从各个不同的角度去观察它,而后才能编辑它。那么接下来我们介绍Scene场景“视角”的变换操作。注意,不是Game场景的“视角”变换哦。

3D场景中,Scene 视图类似于3ds max的透视图。场景视图辅助图标 (Scene Gizmo) 显示在Scene视图的右上角。此控件用于显示 Scene 视图摄像机(不是游戏里面的Main Camera摄像机哦)的当前方向,并允许修改Scene 视图的视角和投影模式。如下所示:

 

这个就类似于3ds max中右上角的ViewCube,都是用来控制当前场景摄像机的视角。点击四个方向的圆锥体(红色X轴,绿色Y轴,蓝色Z轴),可以切换视角,例如:Right右视图,Left左视图,Back后视图,Top顶视图,Bottom底视图(共六个方向)。这种方式的调整,使用并不是很多,我们主要还是通过鼠标或键盘来控制场景视图的视角变换。

1.鼠标中键拖动来移动Scene视图视角。

2.鼠标右键拖动来旋转Scene视图视角。

3.鼠标中键滚动来缩放Scene视图视角。

在这里,我们还是要跟3ds max中的操作做一个对比:

3ds max视角平移:鼠标中键拖动

3ds max视角旋转:按住 Alt 鼠标中键拖动

3ds max视角缩放:鼠标中键滚动

两者的区别在于视角旋转,Unity是鼠标右键拖动,3ds max中则是Alt + 鼠标中键。也就是说,3ds max中完全是通过中键来完成视角的操作。因为中键只有滚动和拖动两种操作,因此3ds max采用增加alt辅助键的方式来实现统一使用中键完成视角操作的一致性。而Unity并没有这样设计,而是采用右键拖动来完成旋转,因为很多的3D游戏中均是采用此种方式进行视角旋转的(我猜是这个原因吧!)。这里再次强调一下,以上的视角操作针对的是Scene场景视图(就是操作Scene Camera),目的是方便我们编辑游戏对象(方便我们创建游戏世界)。

接下来重点介绍游戏对象的移动,旋转和缩放操作,也就是我们上文提到的世界三大变换矩阵。在工具栏中,有对应的命令,如下图所示:

上图中工具栏的快捷键分别是QWERTY,熟悉3ds max的对这三种操作应该非常熟悉了。第一个手型按钮(Q键)就是视角平移操作,等效于鼠标中键拖动。剩下的三个依次是移动 (Move)、旋转 (Rotate)、缩放 (Scale),注意他们操作对象是游戏对象。我们可以点击选中我们刚刚创建的“cube立方体”,然后分别进行W移动,E旋转,R缩放。

 

 

简单的操作一下,我们就能明白,红色,绿色和蓝色分别代表x,y,z三个方向的变换操作。具体的操作,我们就不演示了,大家可以点击选中三种颜色的线段后拖动鼠标即可看到效果。接下来的T是矩形变换工具(Rect Tool),主要用于编辑UI控件,接下来的Y是综变换工具,因为它融合了移动,旋转和缩放三种变换,最后的Editor Tool则是自定义按钮工具。

我们之前DirectX课程中介绍过,游戏对象的移动,旋转和缩放是相对于游戏对象的轴心而言的。Unity中同样也有类似的操作,就是工具栏变换命令后面的CenterLocal选项。其中,PivotCenter是一组切换,Pivot就是游戏对象的轴心(模型坐标系的原点),Center则是游戏对象的中心。我们之前介绍过,游戏对象的中心不一定是轴心。例如,一个人物模型的轴心是脚底中间位置,而中心则是肚脐的位置。后面的LocalGlobal则是模型坐标系(也称之为本地坐标系)和世界坐标系,两者也是一组切换。如果对这两个概念仍然不理解的,建议回头看看DirectX课程,后期的游戏对象的移动或旋转,都必须明确轴心和坐标系。通常情况下,我们使用模型本地坐标系来对游戏对象进行变化操作。

接下来,我们顺便把工具栏后面几个重要的按钮简单介绍一下。

他们依次是播放,暂停和单步执行命令,其实就是控制游戏的运行和调试。

最后我们继续介绍工具栏最后的内容

第一个是Plastic SCM版本控制工具,我们暂时用不到。

第二个是 Unity提供的各种服务,我们暂时用不到。

第三个是Unity的登录账号。

第四个是Layer(层)下拉选项,Unity默认创建了一些层,我们也可以自定义一些层。

第五个是Unity的界面布局,你可以将工程视图,层次视图或者检视视图等等按照自己喜好摆放在窗体的任意位置,并保存为一个布局方式。个人还是比较倾向于默认的布局方式。

Scene 视图中,大家可以看到灰色的地面上面有很多的栅格,这个跟3ds max是一样的。可通过将游戏对象对齐(移动)到最近的栅格位置来帮助精确对齐游戏对象。我们可以设置栅格线在 Scene 视图中显示的大小。通过菜单栏Edit > Grid and Snap Settings打开。

本章节虽然内容比较少,但是需要大家熟练掌握场景视图视角的操作,以及游戏对象的移动和旋转操作。这两个操作是最基本,也是最常用的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/464136.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

即时配送,即时很重要!商家能不能盈利,“快”是源头

“家里水果没有了,选几样叫个跑腿送来吧。” “现在得囤点布洛芬了,我从网上下单。” “同城配送真是太及时、太方便了。” 最近一段时间,如果要问有什么产业突然兴起的话,即时零售无疑是市场最受欢迎的产业。甚至有种说法&…

C盘变红了如何清理?释放C盘空间的3大方法!

案例:c盘变红了如何清理 【我的电脑才用了不到一年,现在c盘已经爆红了,c盘里的文件那么多,我也不敢乱删里面的文件,请问下大家遇到c盘变红的情况都是如何清理的呀?】 C盘是电脑中最常用的磁盘之一&#x…

ubuntu中编译serialplot

源码链接:GitHub - hyOzd/serialplot: Small and simple software for plotting data from serial port in realtime. 安装依赖 apt install qtbase5-dev libqt5serialport5-dev cmake mercurial qttools5-dev libqt5svg5-dev 下载编译serialplot hg clone https…

九耶丨阁瑞钛伦特-Java分布式(一)

分布式是指将一个大型系统分为多个小型子系统,这些子系统可以通过网络相互通信,在共享资源的同时协同工作,从而构成一个大型的、功能完整的系统。分布式系统有以下几个特点: (1)分割资源; &…

【Java数据结构】二叉树的前中后序遍历(递归和非递归)

二叉树的遍历 递归做法前序遍历中序遍历后序遍历 非递归前序遍历中序遍历后序遍历 二叉树遍历是二叉树的一种重要操作 必须要掌握 二叉树的遍历可以用递归和非递归两种做法来实现 递归做法 前序遍历 前序遍历的遍历方式是先根节点 在左节点 在右节点 述这棵树前序遍历的结…

一种视频算法插件流水线执行架构

目的 将视频接入进来以后,使用算法对图像进行处理并且输出 1 各种接入 2 解码 3 解码后图像算法 如矫正算法 4 共享输出 方式 使用动态库的方式进行扫描底层,每个动态库为一个插件,每个插件包含特定的函数,通过扫描的方式加载所…

Juniper 命令集合,分好类了,网工收好了哦!

Juniper是一家全球领先的网络设备制造商,其设备广泛应用于企业、运营商和数据中心等领域。下面是Juniper常用命令集合,以供参考。 基本命令 show interfaces:查看所有接口状态。show interface [interface-name]:查看指定接口的状…

Java_常用API

Java_常用API ​ API即Application Programming Interface,即应用程序接口。一般来说API就是软件组件之间信息交互的桥梁,通过它无需访问源码。API除了有应用程序接口的含义外,还特质API的说明文档,也称为帮助文档。 1.字符串的…

STM32F4_LCD液晶显示详解

目录 1. LCD简介 2. TFT_LCD简介 2.1 LCD屏显示原理 2.2 TFTLCD硬件分析 2.3 3.5寸 16位80并口驱动 2.4 NT35310驱动时序 2.5 TFTLCD驱动流程 2.6 显存指令 2.6.1 0xD3:读取LCD控制器的ID 2.6.2 0x36:控制扫描方向 2.6.3 0x2A:列地…

传统机器学习(七)支持向量机(2)sklearn中的svm

传统机器学习(七)支持向量机(2)sklearn中的svm 2 sklearn中的svm 2.1 LinearSVC及SVC参数详解 2.1.1 SVC参数 class sklearn.svm.SVC(*,C1.0, kernelrbf, degree3, gammascale, coef00.0, shrinkingTrue, probabilityFalse, tol0.001, cache_size200, class_weightNone, ve…

【刷题记录】stack queue的题目练习

文章目录 1. 最小栈2. 逆波兰表达式3. 栈的压入弹出序列4. 栈实现队列5. 队列实现栈 1. 最小栈 题目链接:155. 最小栈 - 力扣(LeetCode) 题干: 设计一个支持 push ,pop ,top 操作,并能在常数时…

使用django_celery_beat在admin后台配置计划任务

一、依赖包的安装 django中使用celery做异步任务和计划任务最头疼的点就是包之间版本兼容性问题,项目一启动花花报错,大概率都是版本问题。每次都会花很大时间在版本兼容性问题上。本例使用如下版本: Django3.2 celery5.2.7 django-celery-b…

记一次 Windows10 内存压缩模块 崩溃分析

一:背景 1. 讲故事 在给各位朋友免费分析 .NET程序 各种故障的同时,往往也会收到各种其他类型的dump,比如:Windows 崩溃,C 崩溃,Mono 崩溃,真的是啥都有,由于基础知识的相对缺乏&a…

CASAIM高精度自动化三维扫描系统检测塑料件,自动检测形位公差

随着塑料工业的迅速发展,以及塑料制品在航空、航天、电子、机械、船舶和汽车等工业部门的推广应用,对塑料件的质量要求也越来越高。 为了检测塑料件的尺寸偏差以及测量关键部位的3D尺寸和形位公差,对影响总成零件精度的产品、工装、工艺进行精…

Spring手写模拟源码篇(你值得拥有)

概念篇 下面是本文章关于Spring底层原理的章节 Bean的创建的生命周期 类-》推断构造方法-》根据构造方法创建普通对象-》依赖注入(Autowired等进行属性注入)-》初始化前(PostConstruct)->初始化(InitializingBean)-》初始化后…

【Feign扩展】OpenFeign日志打印Http请求参数和响应数据

SpringBoot使用log4j2 在Spring Boot中所有的starter 都是基于spring-boot-starter-logging的&#xff0c;默认使用Logback。使用Log4j2的话&#xff0c;你需要排除 spring-boot-starter-logging 的依赖&#xff0c;并添加 spring-boot-starter-log4j2的依赖。 配置依赖 <…

transformer 网络概述

1. RNN存在的问题 RNN对并行计算并不友好&#xff0c;下一输出依赖于上一输入&#xff0c;难以实现并行高效计算RNN相比较与self-attension模块&#xff0c;缺少对部分变量权重的预估&#xff0c;输出的数据默认拥有一致的权重 2. self-attension self-attension是干嘛的&am…

Shell编程规范与变量使用(再也回不到故事开始的第一章了)

一、Shell编程概述 1.Shell脚本的概念 将要执行的命令按顺序保存到一个文本文件&#xff0c;给该文件可执行权限&#xff0c;可结合各种shell控制语句以完成更复杂的操作。 2.Shell脚本的应用场景 重复性操作 交互性任务 批量事务处理 服务运行状态监控 定时任务执行 … 3…

【MySQL高级】——SQL执行流程

一、MySQL 中的 SQL执行流程 1. 查询缓存 Server 如果在查询缓存中发现了这条 SQL 语句&#xff0c;就会直接将结果返回给客户端&#xff1b;如果没 有&#xff0c;就进入到解析器阶段。需要说明的是&#xff0c;因为查询缓存往往效率不高&#xff0c;所以在 MySQL8.0 之后就抛…

设计模式 -- 组合模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…