【Unity】思考方式与构造 | 碰撞器/刚体/预设/组件

news2024/11/23 22:14:23

《Unity神技大人炼成记》第二章-思考方式与构造
Unity版本:2019.4.23f1c1
相关文章:第一章:开天辟地(场景搭建-天空 山脉 草木 湖泊)

  • 粉色矩形是截图后添加,以便辨认操作位置
  • 有些步骤只是为了体现一些属性,建议看完再选择试操作
  • 可以:指的是可以有这些操作,但此刻没这么做

刚体/碰撞器

创建一个Cube
可以:右上角可重置数值(Reset),即移动到世界中心
可以:复制粘贴组件信息
可以:把名字旁边✔取消则置为非活动状态
在这里插入图片描述

太阳光删除,放置聚光灯(SpotLight)
在这里插入图片描述
在这里插入图片描述
觉得世界太亮可以调整ambient intensity参数
在这里插入图片描述

在这里插入图片描述

给cube添加组件-渲染Render-灯光Light,把spotlight置为非活动状态(名字旁边的✔取消)
在这里插入图片描述

在这里插入图片描述
将类型设置为点point在这里插入图片描述

为了体现发光块,添加地板,自行调整距离
在这里插入图片描述

在这里插入图片描述
给cube添加组件刚体
在这里插入图片描述
Mass:单位kg
Drag:对于移动的阻力,空气阻力。数值越大,空气越像胶糖,具有很强的阻止移动力量
Angular Drag:阻止物体旋转的空气阻力
Use Gravity:是否使用重力?(开启时物体会沿着y轴下落
Is Kinematic:添加此项的话,物体不会从被放置的位置下落,只有通过脚本编辑才会移动。如关节一样被固定在某处。
Interpolate:基于前一帧或后一帧来控制动作。用于让动作平滑的情况下来设置
Collision Detection:如果物体移动的速度非常快,则可能在两次碰撞检测之间产生未经碰撞检测而穿过其他物体的情况。这一项是为了防止这种情况
Constraints:设置对于移动和旋转的约束

在这里插入图片描述
进行一些角度变换
运行后cube自然下落,接触到平面静止

设置cube物理材质
在assets中创建物理材质,改名为Bouncy
在这里插入图片描述
设置参数绑定到cube碰撞器
在这里插入图片描述

在这里插入图片描述
再次点击运行,cube会不断弹跳,滚出边界
在这里插入图片描述
Dynamic Friction:移动过程中的摩擦系数。以跑步为例,数值越接近0,越像是在光滑的油面上跑步。如果数值为1,就有很强的摩擦力,仿佛穿了带防滑钉的跑鞋跑步。
Static Friction:静止状态的摩擦系数。如果数值为0,则像游戏中心的空气曲棍球里飘浮的球一样,非常容易移动。如果数值为1的话,就好像粘上了强力胶一样,动不了。
Bounciness:反弹系数。如果数值为1,则通过碰撞获得的能量会全部反弹回去。如果数值为0,则完全不返弹。游戏对象是弹力球的跳动方法还是丢沙包的跳动方法,是由这个数值设置的。
Friction Combine:与其他碰撞器接触时,摩擦的计算方法。可以设置4种方式:Average(平均)、Multiply(相乘)、Minimum(使用二者之中的最小值)、Maximum(使用二者之中的最大值)。例如,用砂纸摩擦木头时当然比用两张砂纸相互摩擦要光滑了,所以选择Average即可。想象一下带着橡胶手套拿冰块的情景。即使橡胶手套本身的摩擦力很强,但是用不吸水的橡胶手有来拿冰块,可能反而比徒手拿更滑溜。这种情况下,就应该选择Minimum。
Bounce Combine:设置当物体与其他碰撞器碰撞时,如何计算反弹的模式。同样,也可以设置4个种类 Average(平均)、Multiply(相乘)、Minimum(使用二者之中的最小值)、Maximum(使用二者之中的最大值)。个弹力球相互碰撞时,用Multiply模式;而当弹力球撞到弹力低的垫子时,就用Minimum模式等,需要根据假设的质,来更改设置。
Friction Direction 2:这是碰撞之后,各个方向的动作的摩擦系数。例如,想象一下滑雪板。纵向是很易滑动的,但横向设置了边缘,非常难滑动。这里的X轴、Y轴、Z轴是对GameObject本身的方向而言,所以,如果有不动的斜面,会因GameObject的放置方向不同而更改滑动的方向。在简单的汽车游戏中也能应用。在汽车漂移等动作中可以使用。
Dynamic Friction 2:在Friction Direction2中设置了数值时,动态物体的摩擦系数。
Static Friction 2:在Friction Direction2中设置了数值时,静止状态的摩擦系数。

关于层级Hierarchy的思考方式

新建一个GameObject取名为Basket
在这里插入图片描述
接着为了放在cube滚落搭建墙壁(cube变形),并放到Basket中(以层级的形式放置
(这里我为了自己的眼睛改了改照明设置
在这里插入图片描述

运行,自行调整摄像机视角

在这里插入图片描述

Prefab预设

将cube1拖拽到assets(字体变蓝
在这里插入图片描述
可以拖拽进项目中
在这里插入图片描述

这个保存的Prefab相当于母体,而创建的Prefab实例与母体Prefab之间具有关联,母体Prefab更改了属性,则实例也会更改,比如将Prefab改为球体,则所有实例都会变为球体
但如果实例偷偷自己改变形状则不会被母体连带更改,这些就自己去尝试吧

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

预制件属性

在这里插入图片描述
打开:打开母体prefab,更改属性则全部实例更改
选择:所有实例为选中状态
覆盖:可以恢复成母体prefab设置,也可以将所有实例更改为跟这个实例相同属性
在这里插入图片描述

各式各样的相关内容

GameObject的最小单位就是通过菜单点击Create Empty创建出只有Transform组件的空游戏对象。它是可以容纳各种组件的容器。而且,还有一点很重要,GameObject可以以层级的形式放置。分层级放置 GameObject,意思是以Transform为基准,在位置、方向、大小方面形成父子关系状态(即Hierarchy),可以通过脚本组件,以父子层级为轴,来控制属性。

Mesh:设置游戏对象的形状使用哪种数据。这次我们选择的是Unity自带的原始形状,不过,这里还能设置通过模型软件等制作的MeshData。
Mesh Renderer:该组件用于设置Mesh应如何显示的。在这里我们使用的 Default-Material是Unity唯一自带的材质,但材质数据是可以自由创建的,能让世界更加丰富多彩。
Box Collider:这是设置箱型碰撞区域。在这个碰撞属性中,可以添加数据来自由设置物理材质的摩擦系数和反弹系数。这些数据被称为物理材质。此外还有胶囊型、圆形、自定义建模的Mesh Collider等复杂形状。
Rigidbody:为物体赋予重量。带有这个组件,则游戏对象会受重力作用,沿着Y轴下降。
Light:这是光源。能设置可以当作太阳使用的Directional Light、Spot Light、 Point Light等各种类型。

一些相关组件

没有详细写,相信用到的时候就会有所了解了
Effects :与视觉效果相关,如粒子Particle
Physics:与物理引擎相关
Navigation:探索路径等结构组件
Rendering:渲染相关
Audio:声音
Miscellaneous:动画、动作
Event:UI、交互界面
UI:UI
Layout:UI配置

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

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

相关文章

网络安全入门建议

前言 最近有很多人问我,我想自学一些安全相关的技术,有没有适合入门阶段学习的web安全书籍。说到Web安全书籍,这几年其实是一种百家齐放的状态,不断有优秀的书籍出版,那这里就尽可能少地整理几本我阅读过的Web安全入门…

【11】使用透视投影建立一个3D空间的测试

核心操作: 1.proj view model 这三个矩阵 glm::mat4 mvp m_Proj * m_View * model; m_Shader->Bind(); m_Shader->SetUniformMat4f("u_MVP", mvp);着色器里面就: proj:投影矩阵,可以选择正交投影,或者透视投影…

JVS低代码表单自定义按钮的使用说明和操作示例

在普通的表单设计中,虽然自带的【提交】、【重置】、【取消】按钮可以满足基本操作需求,但在面对更多复杂的业务场景时,这些按钮的显示控制就显得有些力不从心。为了更好地满足用户在表单操作过程中的个性化需求,JVS低代码推出了表…

关于Web端 —— UI自动化测试

在手工测试阶段,针对项目输出了测试用例,如果这些测试用例需要在版本迭代的过程中,需要进行回归测试,通过手工重复地执行测试用例,将会耗费大量的人力。 为此应运而生就有了自动化测试,通过使用自动化工具…

MyBatis-plus超神用法--一文带你玩转MP

前言 MyBatis-Plus是一个基于MyBatis的增强工具,提供了很多便捷的功能和增强的功能,以下是一些MyBatis-Plus的超神用法: 通用Mapper:MyBatis-Plus提供了通用Mapper的功能,可以通过继承BaseMapper接口,实现…

算法训练营第十三天 | 239. 滑动窗口最大值、347.前 K 个高频元素

文章目录 对应力扣的题目链接思路分析解决方案 问题一 、239. 滑动窗口最大值 题目链接 : 239. 滑动窗口最大值 - 力扣(LeetCode) 思路分析 : 1、可能首先想到的是暴力破解 ,每一个区间,遍历一遍&#xf…

tracert命令

tracert tracert (跟踪路由)使路由跟踪使用程序,用于确定IP数据包访问目标所采用的路径。Tracert命令用IP生存时间(TTL)字段和ICMP错误消息,来确定从一个主机网络上其他主机的路由。 类似与Linux的traceroute 命令 命令格式 t…

PHP 在线学习平台系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 PHP 在线学习平台系统是一套完善的web设计系统mysql数据库 ,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 PHP 在线学习平台系统1 代码 https://download.csdn.net/download/qq_41…

响应式成人高考自考教育机构网站模板源码下载带后台

模板信息: 模板编号:30558 模板编码:UTF8 模板分类:学校、教育、培训、科研 适合行业:教育机构类企业 模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统,原创设计、手工书写DIVC…

LeetCode----149. 直线上最多的点数

 题目 给你一个数组 points ,其中 points[i] [ x i x_i xi​, y i y_i yi​] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 示例 1: 输入:points [[1,1],[2,2],[3,3]] 输出:3 示例 2: 输入…

【通信原理】第三章 随机过程——例题

一、随机过程 1. 数学特征 ① 随机信号(三角函数表达式) ② 随机信号(求和表达式) 2. 功率谱密度 ① 相位确定,求功率谱密度 ② 已知相位分布,求功率谱密度 ③ 信号为两信号之和,求功率谱密度…

闲置电脑做什么副业赚钱?盘点如何利用电脑赚钱的方法

对于很多人来说,手机的强大功能使闲置的电脑被遗忘在角落。虽然现在手机已经取代电脑的很多用途。但是实际上,网络上还是有很多项目是手机不能展开的,而电脑方方面面都可以,所以,只要你愿意花些时间和精力,…

ConcurrentHashMap 源码解析

目录 一. 前言 二. 源码解析 2.1. 类结构 2.2. 基本属性 2.3. 构造方法 2.4. 增加元素 2.4.1. initTable() 2.4.2. helpTransfer() 2.4.3. transfer() 2.4.4. treeifyBin() 2.4.5. addCount() 2.5. 获取元素 2.6. remove() & replace() 2.7. clear() 2.8. s…

研发管理和项目管理有哪些痛点

研发管理和项目管理有哪些痛点 研发管理和项目管理有:1.项目进度把控难;2.绩效考核难;3.部门信息不同步;4.人力资源不均衡;5.需求管理难。项目进度把控难是研发管理和项目管理中的名列前茅痛点,要解决该问题…

引用类型;强引用;软引用;弱引用和虚引用

概述 平时在编写代码的时候内存都是由jvm管理,对象的回收也是jvm在管理; 但是有些时候jvm无法回收对象,最后就会抛出oom异常. 那么那些回收不了的对象肯定有区别于能回收的对象; 先上一波引用类型介绍 强引用 比如平常我们直…

Go进阶之rpc和grpc

文章目录 Go环境安装1)windows2)linux go语言编码规范1.1 包名:package1.2 ⽂件名1.3 结构体命名1.4 接⼝命名1.5 变量命名1.6 常量命名2.1 包注释2.2 结构(接⼝)注释2.3 函数(⽅法)注释2.4 代码…

三维变换与投影-计算机图形学

目录 三维变换与投影 三维变换原理 为什么C语言头文件要专门放在一个.h文件中呢? 斜投影原理 介绍一下什么是UGC 入口 透视投影 透视投影坐标系 三维变换与投影 三维变换原理 如何把三维物体投影到两维物体上 齐次坐标 加上一维,方便运算 …

chatGPT培训老师AIGC培训讲师叶梓:大模型这么火,我们在使用时应该关注些什么?-6

以下为叶老师讲义分享: P25-P29 提示工程的模式 节省计算资源: 在微调过程中,不需要重新训练整个模型,因此可以节省计算资源。 提高特定任务上的性能: 通过微调,模型可以适应特定任务的语言特征和模式…

实时定位与路径优化:跑腿App系统开发中的地理信息技术

本文将介绍如何使用地理信息技术实现实时定位和路径优化功能,以提高跑腿服务的效率。 实时定位 用户位置获取 # 示例:获取用户的实时位置 def get_user_location(user_id):# 使用GPS或网络定位技术获取用户的地理坐标# 返回经度和纬度信息return lon…

随笔记录-springboot_ConfigFileApplicationListener

SimpleApplicationEventMulticaster、 BootstrapApplicationListener、ConfigFileApplicationListener 加载流程 SpringApplication#run(java.lang.Class<?>[], java.lang.String[]) SpringApplication#run(java.lang.String…) SpringApplication#prepareEnvironment…