关于unity中物理引擎的使用

杭者 杭者     2022-09-03     763

关键词:

物理引擎控制刚体,刚体上面贴上图片,所以看起来就是游戏运行起来的状态

物理世界计算刚体的运行状态,通过贴图显现出运算结果。

一、物理引擎

1:Unity 2D物理引擎基于Box2D封装而成;
2: 物理引擎模拟物理运动和计算,物理引擎帮助我们计算物体运动;
3: 重力加速度;
4: 碰撞器是物体的形状 + 碰撞的物理参数(物理材质);
5: 刚体控制物体运动和受力;

 

 

二、步骤

1.创建一个Canvas

2.对Canvas进行初始化,记得把Game视图的分辨率调成和Canvas里面设置的一样的分辨率640X960

3.创建一个Image的UI节点作为Canvas的子节点,名字叫bg,拖进背景图片到这个节点中。

4.创建一个Image的UI节点叫做item的子节点,颜色设置为红色

5.给item节点添加一个Rigidbody 2D的组件,有这个组件后再运行,就会发现这个item节点往下掉

6.Rigidbody 2D的组件的物理参数设置:

UseAutoMass/Mass:根据密度*面积自动计算出来,刚体质量。
Linear Drag: 线性阻尼,空气阻力等。
Angular Drag: 旋转阻尼,旋转阻力。
Gravity Scale: 重力缩放因子,1就是地球上的重力,0.6就是月球上的重力。
Is Kinematic: 静态刚体和动态刚体,静态刚体不能动,动态刚体可以动。
Sleep Mode模式: 刚体休眠模式。平时:刚体不受任何外力的情况下默认是进入休眠状态,不会参与运算,Never Sleep永不休眠,而默认是Start Awake,唤醒时启动。
Collistion DetectionMode: 刚体碰撞检测的模式(连续型检测/离散型检测)。Discrete离散,Continues连续。

 

注意:像子弹这种的刚体,Collistion DetectionMode运动模式要选择Continues连续,这样才不会因为速度太快,Update时间间隔太短而导致子弹穿透其他刚体,机制是判断运动期间是否碰撞某个刚体,如果有,就把状态拨回到两者碰撞前的状态,造成撞墙的效果。

   其他情况下默认选择Discrete离散。

 

7.只是加一个Rigidbody 2D的组件叫刚体,刚体是没有任何形状的。没有形状的刚体之间是不会产生碰撞效果的,会直接穿过去,像幽灵一样。两个物体想要实现碰撞效果,必须都有Box Collider 2D组件,其中任何一个没有Collider 2D组件都不行,都会直接穿过。

只有Collider 2D组件,没有Rigidbody 2D组件也是不行的,会相当于一个不受力的静止的物体,但是会和有Collider 2D组有碰撞效果产生。

我们需要再加一个组件叫做Box Collider 2D(矩形碰撞器),用来表示刚体的形状,其实还有圆形碰撞器Circle Collider 2D等等各种碰撞器。

绿色方框就是碰撞检测的有效区域。在Box Collider 2D组件的Size属性(半径radius)里面调整大小,一般设置成和图片大小一样的大小。

 

8.Box Collider 2D的物理参数设置:

Material:材质,表示碰撞物体表面的材质,物理材质就是下雨天的地面和水泥地地面的区别

Is trigger:是否仅作为触发器,当这个属性打钩的时候,那么其他刚体碰撞到它的时候,只会触发碰撞事件,不会有碰撞效果产生,就是说系统检测到碰撞,但是不在画面上显示碰撞的过程,会直接穿过去。可以把一些通过的传送门,金币的Is trigger打钩,

这样就可以达到我们想要的效果,就是有碰撞事件发生,但是没有碰撞的画面效果。

 

创建物理材质

右键-->create--> Physics2D Material,物理材质有两个属性,Bounciness弹力和Friction摩擦力。

创建好物理材质后,需要拖到对应的Box Collider 2D组件的Material属性中,Bounciness弹力为0.5就可以看出碰撞后物体会反弹一段时间

 

003-unity3d物理引擎简介以及示例

一、概述  物理引擎就是模拟真实世界中物体碰撞、跌落等反应的引擎,通过ballence、愤怒的小鸟等理解。Unity3D的物理引擎使用的是Nvidia的PhysX。  物理引擎是一个计算机程序模拟牛顿力学模型,使用质量、速度、摩擦力和... 查看详情

如何统一禁用物理系统

...加载整个物理类,因为这些是我的应用程序的额外负载。关于它的任何想法【参考方案1】:如何统 查看详情

unity3d学习笔记三十六:物理引擎——刚体

物理引擎就是游戏中模拟真是的物理效果。如两个物体发生碰撞,物体自由落体等。在unity中使用的是NVIDIA的physX,它渲染的游戏画面很逼真。刚体刚体是一个很很中要的组件。默认情况下,新创的物体是不具备物理效果的,而... 查看详情

unity物理系统简介

UNITY_物理系统简单介绍要有说服力的物理行为,游戏中的物体必须正确地加速,受到碰撞,引力和其他力量的影响。Unity中实际上有两个独立的物理引擎:一个用于3D物理,另一个用于2D物理。两个引擎的主要概念是相同的(除了... 查看详情

蓝鸥unity开发基础三课时14刚体

【蓝鸥Unity开发基础三】课时14刚体一、刚体物理引擎:物理引擎能够真实的模拟物理效果Unity中使用的是NVIDIA的PhysX物理引擎在Unity中使用Rigidbody让游戏对象受物理引擎控制650)this.width=650;"src="http://s2.51cto.com/wyfs02/M01/87/CA/wKioL1fh-X-z... 查看详情

physx物理引擎研究源码编译(代码片段)

前言Unity3D中的物理引擎分为2D引擎和3D引擎两部分,其中2D引擎使用的ErinCatto写的是Box2D,而3D引擎使用的的NVIDIA的PhysX,在UnityEditor中打开Help—AboutUnty可以看到"PhysicspoweredbyPhysX.(c)2011NVIDIACorporation."的字样。Unity历 查看详情

unity物理系列六布料

参考技术A随着时代的发展和移动设备硬件性能的提升,物理引擎被越来越多的移动游戏所使用。物理引擎处理的对象主要可以分为刚体(RigidBodies)和柔体(SoftBodies)两大部分,刚体主要应用在物理碰撞、破碎、布娃娃等系统... 查看详情

unity物理系统[colliders]

...Unity官方文档本篇文章是介绍在游戏开发过程中,常用的物理组件(BoxCollider,Rigidbody等)介绍一些基本的作用,和一些需要规避的地方。BoxColliderBoxCollider形状类似于箱子,所以也经常使用在地板,墙壁,坡道上;也是组合碰撞... 查看详情

egret中使用p2物理引擎

游戏中的对象按照物理规律移动,体现重力、引力、反作用力、加速度等物体特性,实现自由落体、摇摆运动、抛物线运动,以及物理碰撞现象的模拟。用于模拟物理碰撞、物理运动的引擎称为物理引擎。 来自瑞典斯德哥尔... 查看详情

2、unity引擎的特点是啥?

...术(LOD),可支持大型游戏所需的运行性能。4.NVIDIA专业的物理引擎Unity支持NVIDIAPhysX物理引擎,可模拟包含刚体&柔体、关节物理、车辆物理等。5.友善的专业开发工具包括GPU事件探查器、可插入的社交API应用接口,以实现社交游... 查看详情

unity物理引擎浅谈

刚体:刚体是模拟物理效果的对象。添加了刚体组件的游戏物体,会受重力影响,可以被玩家四处推动,或者直接用脚本添加力给对象来让他四处移动。通常情况下,对同一物体,要么通过刚体操纵,要么通过变换(transform)操... 查看详情

unity3d在update中不要过多地修改transform信息

...因为你移动的过程中其实并没有将实际的移动位置更新到物理引擎,只是做了个缓存而已,只有在调用FixedUpdate的内部函数(物理引擎处理)时,才会将最新的位置设置到物理引擎上,甚至是渲染引擎也使用最新的位置。其实是有... 查看详情

关于unity中关节的使用

1:刚体的形状大小在物理世界里面是不变的,可是很多时候,我们需要多个刚体来配合使用;2:关节:连接刚体与刚体的对应的物理模拟;3:关节类型:铰链关节,弹簧关节,固定关节,角色关节,可配置关节 铰链关节1:将两个刚体束缚... 查看详情

unity虚拟仿真怎么样

...技术BUnity是一种流行的游戏引擎,其强大的3D图形渲染和物理引擎技术,使其也被广泛应用于虚拟仿真领域。下面是Unity虚拟仿真的一些优点和应用场景:优点:逼真的3D图形渲染:Unity的图形渲染引擎可以创建逼真的3D场景,以... 查看详情

物理引擎havok教程

...建开发环境         网上关于Havok的教程实在不多,而且Havok学习起来还是有一定难度的,所以这里写了一个系列教程,希望能够帮到读者。这是第一期。 一、Havok物理引擎简介   &nb... 查看详情

(六)unity3d物理引擎组件汇总

...物体对物体的作用,力不能脱离物体而单独存在。Unity的物理引擎就是以此为基础构建的。重力(G):物体由于地球的吸引而受到的力叫重力。重力的施力物体是地心。Unity中的重力与其相似。重力的方向总是竖直向下。摩擦力... 查看详情

unity2d游戏物理引擎演示

查看详情

unity之碰撞体组件

3D物理组件中碰撞体组件添加与设置碰撞体是物理组件中的一类,3D物理组件和2D物理组件有独特的碰撞体组件,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才... 查看详情