unity3d中,刚体和碰撞体的问题。???????? [问题点数:30分]

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:45
Bbs1
本版专家分:0
Bbs2
本版专家分:241
Bbs1
本版专家分:10
Bbs1
本版专家分:10
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs2
本版专家分:277
其他相关推荐
Unity3D - 用更通俗的方式来教你理解刚体碰撞
对于刚接触Unity3D的新手,部分人会在物理组件的的理解中弄混刚体(rigidbody)和碰撞体(collider)这两者。网络上很多相关文章,个人认为逻辑条理清晰,但推荐给别人后仍然会有人说没有很大帮助。究其原因,应该是大部分文章是以unity中组件的特性和用法为基础去解释两者,对读者的unity基础有一定要求。最近向别人解释时突然想出一个以人对现实世界的理解为基础的解释方法,在此记录分享给大家。
Unity3D 关于刚体(RigitBody)与碰撞体(Collider)的探索
为了研究刚体碰撞体这两个组件对游戏对象的影响,我进行了下面的实验: ,使用球体施加力的作用碰撞立方体。 方案一: A:刚体 + 碰撞体 B:刚体 + 碰撞体 实验过程:给A一个普通力(或直接设置position属性或直接使用Translate位移),使A撞击B 实验结果:A与B均能收到碰撞事件,物理效果良好。 方案二: A:刚体 + 碰撞体 B:碰撞体 实验过程:
Unity3D中开发2D游戏——碰撞体、刚体的区分和添加
Add Component添加Box Collider 2D(碰撞体)Add Component添加Rigidbody(刚体)首先对碰撞体和刚体做一个简单的区分两句话概括碰撞体: 碰撞体才能被射线检测到,否则无法被检测 碰撞体是产生碰撞的前提两句话概括刚体: 需要模拟重力的自由下落时,添加刚体 物体间发生碰撞时,主动体身上必须添加刚体不管是哪一种Collider,都有 IsTrigger属性,注意...
Unity 碰撞体和刚体的区别(应用)
很多初学者都会问这么一个问题,那就是碰撞体和刚体到底有什么区别,以及如何应用两句话概括碰撞体: 碰撞体才能被射线检测到,否则无法被检测 碰撞体是产生碰撞的前提两句话概括刚体: 需要模拟重力的自由下落时,添加刚体 物体间发生碰撞时,主动体身上必须添加刚体不管是哪一种Collider,都有 IsTrigger属性,注意,在发生碰撞的两个物体中,不管是一个物体勾选IsTrigger属性,还是两个
unity3d刚体碰撞器和触发器的一些知识
刚体(Rigidbody)的官方(摘自Unity3d的官方指导书《Unity4.x从入门到精通》)解释如下: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重力的影响,通过脚本为游戏对象添加的作用力以及通过NVIDIA物理引擎与其他的游戏对象发生互动的运算都需要游戏对
unity3D学习之物体添加刚体碰撞
在界面中的层次栏中单击Create按钮选择(plan)地板.场景中会出现一块地板。然后再单击cube(立方体),然后点击cube对象属性栏中会出现cube的属性,单击最下面的Add  Component(添加组件)中的physics(物理),在从physics属性找到Rigidbody(刚体)cube(立方体)就有了物理属性(重力)。                  添加碰撞:单击Fl
Unity刚体碰撞器、实验和总结
Unity刚体碰撞器、实验和总结 碰撞盒与刚体分类
【Unity3D】刚体自动寻路的抖动问题和运动边界、空气墙的制作
《【Unity3D】自动寻路》(点击打开链接)给我们带来很多方便,尤其是3D游戏的主角移动方面,但是这个东西同样也会带来很多问题。如下图所示。这是一个比较失败的自动寻路例子,由于蓝色的球并不是让玩家主控,只是一个NPC,而这个NPC未来又可能像主角一样进行移动,我们无法像白色的立方体如同墙一样,在自动寻路界面给它上一个Navigation Static属性,因此,我们只是给红球和蓝球共同上一个
关于unity人形模型子父对象各自加(混合)碰撞器或刚体产生的碰撞检测结果的不同
举个典型的例子:一个人形角色模型         1.如果一把刀快速砍过角色,一般碰撞检测往往检测不到,这时如果用触发器检测会提高很大的触发概率(因为触发器不会计算物理信息,比如反弹之类的)。自然检测碰撞状况要高(专业化了)。 2.如果在整个模型加一个刚体,会影响整个身体的运动。那么单独在其任意一个部分加一个刚体,只会影响那个部分及其子级。特别注意子级的碰撞会影响到父级,如果给任意一个部分加一
unity3d 理解刚体(Rigidbody)和碰撞体(Collider)以及触发器(Is Trigger),边学边更新
刚体(Rigidbody)的官方(摘自Unity3d的官方指导书《Unity4.x从入门到精通》)解释如下: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重力的影响,通过脚本为游戏对象添加的作用力以及通过NVIDIA物理引擎与其他的游戏对象发生互动的运算都需要游戏对象添
Unity3D 对一个物体多个碰撞体做调整
一个物体下,不一定只有一个碰撞体,本人在做一个项目的过程中,遇到了一个物体加了几十个至上百个碰撞体,如果想让碰撞体变成触发状态,不太可能一个一个的点过来,所以写了个脚本进行遍历的调整。 遇到的情况如下: 脚本如下:  BoxCollider[] col;  void Start () {         cleanAllColliders(this.transform);     }...
禁止Unity3D中的物体碰撞后旋转
GameObject加了rigidbody之后,与其他物体碰撞会产生力矩从而
刚体之间挤压造成的抖动问题
在做打砖块的时候,发现,如果在移动下面的板的时候当板子碰到左边或右边的墙体的时候就会出现剧烈的抖动问题。 控制板子的代码是这样写的:void Update () { float horizontal = Input.GetAxis("Horizontal"); m_rigidbody.transform.Translate(transform.right * T
unity3d 学习笔记_____Native2d 刚体碰撞器、关节的使用
Mass Mass of the rigidbody. Linear Drag Drag coefficient affecting positional movement. Angular Drag Drag coefficient affecting rotational movement. Gravity Scale Degree to which th
unity不使用刚体碰撞检测
孙广东  2015.8.15目的: 这篇文章的主要目的是为了让您了解有关于在Unity内如何使用没有刚体碰撞检测。在这里,检查的只是垂直运动方向,但可以通过修改脚本,将对象添加到场景检查其他方向 (或更改cube 的位置。unity就是 3D 的游戏引擎,带有内置物理Nvidia PhysX。游戏对象应用物理模拟必须具有刚体。它常用于碰撞检测。         假设我们只想要碰撞检测模拟物理学,
Unity物体碰撞出现穿插问题/穿过问题/物体穿过场景模型
(由于问题不好描述,所以标题就比较长了) 之前在做游戏时,发生角色与其他模型始终不能正常碰撞,总是会穿插,即角色穿过其他模型。其中角色有刚体碰撞器组件,其他模型“有”碰撞器。 事后发现错误在于,其他模型的碰撞器组件被加到“组”上,而非组内每个物体中。 例如,一个客厅场景,有桌子、电视、墙壁,将3者打组成为一个组,命名“Environment”,再给Environment加个碰撞体组件。这样...
Unity3D碰撞后去掉相互之间的反弹力
最近做一个小游戏的时候发现,小模型碰撞到墙壁之后会有一个小小的反弹力导致模型有一个微弱的回弹位移,这样给人一种不好的感觉...... 研究了一下,除了 rigidbody Freeze Rotation之外 在FixedUpdate(注意这里是物理特性,应在这里写而不是Update函数内)里面写一句 rigidbody.velocity = new Vector3(0, 0, 0);
Unity中碰撞体和触发器的区别
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。 物体发生碰撞的必要条件 两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体
Unity3D笔记第十天——刚体及物理材质
刚体(Rigidbody) 刚体 (Rigidbody) 使游戏对象 (GameObject) 在物理控制之下行动。刚体 (Rigidbody) 可以接收力和扭矩以使对象采用逼真方式移动。任 何游戏对象 (GameObject) 必须包含刚体 (Rigidbody) 才能受重力影响、在添加的力作用下行动(通过脚本)或是与其他对象交互(通过  NVIDIA PhysX 物理引擎
Unity学习日常问题记录二-关于刚体碰撞和物理材质(设定了材质不反弹的一种错误)
一,.关于物理材质,很简单 从上到下 1.动态摩擦力 2.静态摩擦力 3.反弹效果,取值【0-1】 4.接触的2者摩擦力计算方式,上图是取2者平均值 5.反弹效果计算方式 但是,有种错误是2个物体中有一个如下配置 时不会发生反弹,对刚体的移动和转动强制限制时在此场景中会导致球撞上后就停下来。 如果不加刚体组件或是不勾选上图6项而只勾选Is Kinematic都会发生反弹,
uinty之碰撞体与刚体
Rigidbody刚体是赋予物体力的的作用效果的基础,包括重力,拉力(阻力也是拉力的一种),角拉力(角阻力同样)。 体现出来的就是物体悬空时会掉落,被其他东西碰到时(假设有碰撞体)会朝着受力方向运动或产生运动趋势。 勾选Is Kinematic使物体不受运动学影响(即简单理解为受力后不动/不改变运动趋势)。 勾选constraints禁止该物体的(position/rotation)在所勾选...
[Unity]刚体碰撞检测刚体反弹次数
2个物体必须都有Collider组件。其中一个物体必须有Rigidbody组件,IsKinematic为否。    private int NumberCollisions;    // Use this for initialization    void Start () {        NumberCollisions = 0;    }    private void OnCollisi...
使用刚体后,物体抖动(爬坑向)
写在前面:这回这个解决方法很简单,效果还不错。不过真心苦恼了一下午。 目的:做一个赛车游戏,其中碰撞的一瞬间给车加上刚体,让车的翻滚更加真实,随机。 表现:车辆翻滚没有问题,但是在摄像机中会有明显的抖动,效果很不好。 解决:上网查了好久找到这么一份资料 http://stephen830.iteye.com/blog/2037075 点击打开链接 !
Unity-Rigidbody【刚体】组件-Collision Detection碰撞检测模式
Continous适用于将有可能会被高速移动物体撞上的物体。 Unity物体的Rigidbody组件提供了一个Collision Detection的属性,该属性用于更改物体的碰撞检测模式————一共有三种模式可以选择(选择你想要的模式,底层碰撞检测的算法均有差别)
unity3d刚体碰撞检测学习一:新建一个plane和一个sphere,却碰撞检测失败的问题
郁闷,今天被这个问题搞了一个下午,弄到现在,记录一下: 本来想说今天学习一下unity3d中的物理的,学到刚体碰撞这一章,就想说先在场景里面摆一个平面(plane)和一个球体(sphere),然后让球体落下来砸在平面上然后反弹,看各种效果,步骤如下: 一、新建一个plane对象,此时这个对象默认有一个Mesh colider碰撞组件。 二、新建一个sphere对象,放置于plane对象之上
这是一个老问题了,加了刚体后,物体会掉下去解决方法
物体碰撞需要刚体,但是用刚体的时候,他会自动的从平台上面掉下去,如果这个地方不懂,原因是没有仔细的阅读unity官方的API文档,unity官方为了帮助我们解决这个问题,专门设计了一个运动学的解决方案。具体API里面都有介绍。
u3d物体反弹碰撞知识
Unity物体碰撞时的反弹系数:也即Physic Material的 Bounciness属性。 一句话,给物体的Collider添加Material属性即可 1,首先,物体要有Collider(BoxCollider, SphereCollider,PolygonCollider等) 2,创建一个Physic Material Asset -> Create->Physic Mate
(第十章)Unity3D-脚本的碰撞与触发
我们在游戏里经常会看到,某两个物体发生碰撞之后zon
Unity使用之预设体&鼠标事件&刚体&碰撞和触发事件
预设体:        预设体能够使游戏对象和资源重复使用,相同的游戏对象可以使用同一个预设体来创建,对预设体进行修改后,所有游戏对象都会相应改变。   游戏对象预设体的建立:         在SampleScene中创建一个3D模型,命名player,然后在Assets中创建一个材质球拖到Scene中的player上,最后将SampleScene中的player拖入到Assets中,这...
Unity3D中物体的碰撞和移动所需函数与数据
Collider  碰撞器 isTrigger Is the collier a trigger 是否可以穿越 contacts 接触点由物理引擎产生 IsTrigger = false(true) 碰撞器可以有(没有)碰撞的效果 物理组件 Inspector==》Add Component==》Physics==》Rigidbody添加所需的物理材质 在控制物体移动时可以选
unity给地形添加原生碰撞体时失效的问题
首先还是简单先说下网格碰撞器,网格碰撞器的碰撞判断处理效果肯定是最好的,但同时也是最费资源的,不管是你买的模型还是你项目组美工给你的模型,导入你unity中时应该同时会导入你的网格模型,一般凡是塔楼或者楼梯等等会允许玩家与之互动的模型都会直接用mesh网格碰撞体,这个会严格与你的模型吻合,从而进行交互。 但是大部分会为了节省资源从而让美工出一份外观大致一致但是线要少数倍甚至数十倍的网格模型,从而...
unity3d中摄像机父物体与模型碰撞
下午做了一点小东西,将摄像机变成cube的子物体,然后cube用来和模型碰撞,有边界碰撞检测 首先参考了http://www.cnblogs.com/javawebsoa/archive/2013/05/18/3085818.html这篇文章 给cube加上了刚体以及box collider,rigidbody没开重力 然后模型加上了mesh collider 遇到的问题如下: 1、开了
【Unity】速度过快碰撞穿透问题
主要原因是: 1.未设置好更新位置的代码位置 2.碰撞盒太小 3.物理碰撞检测间隔太长。 总之,根本原因就是在执行一次碰撞检测之前,移动的位移超过了碰撞本身的大小。 参考说明:http://forum.unity3d.com/threads/collision-detection-at-high-speed.3353/
Unity关于移动时会穿透的一些问题
在大部分游戏里面,我们的游戏主角在移动过程中都是无法穿透场景里面的物体的(除特殊情况外),这就涉及到人物的移动与碰撞问题了。 相信unity里面的移动方法大家都会的,最简单的应该就是Translate()了,同时关于碰撞,一般的做法就是给场景物体添上collider,给人物添上刚体rigibody和collider,如果怕被撞飞,就锁定x ,y , z。 那么问题来了,有时候我们明明
【Unity探究】物理碰撞实验
这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就是物理碰撞。以前没有好好研究过,一直模糊不清,到底什么条件下才可以产生物理碰撞呢?只要其中一个有Rigidbody就可以了吗?所以进行了下面的实验。 以下内容参考了Unity圣典的组件手册。 ----------------------------------------------------------------
unity3d 增加子弹碰撞后物体的爆炸力
爆炸力 子弹碰撞
UE4中自定义碰撞形状和unity3D的区别
U3D中使用自定义形状碰撞体比较简单,直接添加MeshCollider组件,指定碰撞装形状mesh就行 UE4中添加自定义碰撞形状则区别较大 1.美术制作时对于需要碰撞形状需要特殊命名,而且碰撞形状和目标网格要在一个场景中。如图1为目标显示网格,2为碰撞轮廓(为了视觉区别比较明显在MAYA中将轮廓网格显示为网格模式) 比如网格的名字是pCube1则碰撞形状网格命名为UCX_pCu
Unity不规则碰撞
在项目中UI不规则碰撞遇到很少,Unity中也有不规则的碰撞组件(Polygon Collider 2D)但是这种组件只能接受2D射线碰撞,而NGUI的是3D射线碰撞,需要在UICamera中修改代码才能实现。 这篇文章讲的不是这种碰撞,我要说的的方法不用修改代码,步骤如下: 1、让美术个你要的形状面片 这个就是我美术帮我做的扇形面片 2、然后再在面片上添加Mesh Collid
关于如何彻底消除unity中的弹力
正文首先,在unity中应该是无法彻底消除弹力的,即使你把physics中的弹力设为0,即使你给collider添加物理材质,都是没法消除弹力的,具体表现为:改和没改一个样。。。。呵呵,我想这可能物理引擎的一个bug,为什么这么说呢,因为可以改变的只是带有刚体的物体和不带有刚体的物体之间的碰撞(对,可以彻底消除),然后刚体之间的弹力是无法解决的。 那么问题来了,我们该怎么消除刚体之间的弹力呢?有一个
unity代码示例和碰撞检测
1.[AddComponentMenu("MyGame/Player")] //在Component菜单中加入“MyGame/Player”选项 2.Time.deltaTime表示每帧的经过时间,那些需要每帧做增减变动的数值都需要乘上Time.deltaTime 3.MonoBehaviour的派生类不能使用构造函数初始化 4.unity的游戏体只能使用Instantiat
【Unity】3D碰撞物体的设置
在Unity中,使用碰撞体是非常常见的,那么有的时候,碰撞体和刚体,加上了之后,进行碰撞就会反弹,甚至是被撞飞 只有碰撞器(非触发状态),不添加刚体。就可以物体移动,并不撞墙反弹。 如果要模拟重力状态,就使用代码进行模拟。
unity3d 动作会产生抖动的问题
把外部软件制作的动画文件,导入到untiy3d里面的时候,你会发现很多动画文件会一抖一抖的,特别是动画比较精细的部分,诸如腿部,手部末端。 这个问题困扰了很久,然后某天把动作文件在Animation中打开,一帧一帧的观看,一个骨骼一个骨骼的看位移和旋转,发现抖动的时候,这个骨骼的数字都非常的小,很多时候都到了小数点后面很多位。这个时候,我把动画文件拷出来,通过修改帧里数值到一个比较大的数值后,发
unity3D之刚体碰撞体分析
    做一个小demo的时候遇到这个问题,查了许多资料终于搞明白了,特此记录一下:    刚体是发生碰撞时不发生形变的物体,当然这是一种理想状态。    先看刚体,在physics里,rigidbody,翻译还是很直白的                  参数说明:        Mass: 质量,单位kg        Drag: 空气阻力        Angular Drag:转动阻力  ...
unity解决快速运动物体碰撞检测穿透问题
在Unity中,快速移动的物体在与其他物体进行碰撞检测时,可能会穿透。比如子弹和墙壁的碰撞检测。          如何解决这个问题呢?     网上看了下,有说Rigidbody修改continus的,但是我试了下,效果不好,还是会出现穿透的情况。     所以,我准备采用其他方法。     思路如下:发射子弹之前,先发射射线,记录下射线与墙壁的碰撞点,然后再发射子弹,在碰撞点出特效。
unity2d rigidbody碰撞体检测(只碰撞无效果)
碰撞物体都添加到上 rigidbody2d组件。 其中body Type 一定要选择 Kinematic 原因:忘记了。到时查查。 (该选项是想保证能发生碰撞但是并不会发生效果) 2·添加 Collider 2d 组件  其中Is Trigger 不要选择 原因:实验出来的结果。该结果和网上说的不太一样··· 代码层:
Unity3d中Object碰撞销毁基本流程
1.新建Unity3d工程,在场景中添加3D Object,选择两个Cube。 2.Object添加后,其Transform中的Position值都为0。将Cube的Y值设置为3,Cube1的Y值设置为1。 3.然后给Cube和Cube1添加刚体Rigibody。其中Cube和cube1的刚体设置如下图所示。 4.然后给Cueb添加脚本Script程序。注意:脚本程序的文件名不能设置成C
Unity3D多物体碰撞关键代码
void Update () { for(int i=0; i
Unity解决物体移动速度过快而导致不能检测到碰撞问题
问题:假设现在A物体以非常高的速度移动,而unity每一帧的检测时间大概是0
【Unity】Unity中获得碰撞碰撞的位置
有时间的直接看sprite slicer这个插件的代码,原理也是发射线检测,代码逻辑什么的比下面的文章来的好的多,如果有空我也可以整理一下。在纯物理环境中,为了获得碰撞碰撞的位置,我们可以使用Collider2D.OnCollisionEnter2D(Collision2D)来接受碰撞,Collision2D中存有碰撞信息Collision2D.contacts(The specific poin
unity3d对象添加了碰撞体以后OnMouseDown事件
在Unity3d中为了防止物体被穿过,给对象添加了碰撞体,然后原来的单击事件OnMouseDown不执行了,经过查询文档发现:  ◆function OnMouseDown():void  描述:当用户在GUIElement或Collider上按下鼠标按钮时OnMouseDown被调用  这个事件被发送到所有附加在Collider或GUIElement的脚本上。
cocos2dx物理引擎和碰撞检测(六)物体Bodies
前面已经讲到形状和框架的含义,它们分别是用来进行碰撞检测和物理模拟的对象。到现在我们创建的物理世界当中,还未存在任何的物体。因此接下来的内容就介绍物理世界的主角:物体(Body)。它是构成世界的主要因素,因为不仅框架,形状会依附于物体,就连后面介绍的关节也是要绑定在物体之上的。 物体定义: Box2D引擎的物体都为刚体,它的形状不为任何外力所改变。物体上面的任何两点之间的距离都是完全不变的。它
unity2D 忽略物体之间的碰撞
首先在layers里面创建一个新的层player
Java编程思想(第4版)
《计算机科学丛书:Java编程思想(第4版)》赢得了全球程序员的广泛赞誉,即使是晦涩的概念,在BruceEckel的文字亲和力和小而直接的编程 示例面前也会化解于无形。从Java的基础语法到高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌 握。
Unity3d中物体的的碰撞检测
unity3d中如何检测两个物体的碰撞,这是困扰我很久的问题,经过一番测试发现一种方法比较便捷!若有两个Cube,分别为Cube01和Cube02,当拖动Cube01的时候,如何才能检测到碰撞到Cube02了呢?这里有几个重要的步骤: 1.给Cube01和Cube02分别添加Collider组件(Box Collider等等,更具具体情况而定) 2.给Cube01添加Rigidbody 组件
Unity3D 代理的使用及获取两个碰撞器的碰撞
欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。  Unity中的事件机制封装的并不是特别好,如果学过AS3的,会发现再也没有比AS3封装的更完美的了,包括事件机制用起来都是那么的完美。步入正题: 首先创建一个类,比如MyClass,在MyC
碰撞体和刚体
图解如下:
初始Unity 3D——碰撞事件的监听
感觉现在学习的方法要调整一下,mokey老师的教程一集教的内容很少,比如这节课一共教了三个方法: 1、void OnCollisionEnter(Collision coll) 2、void OnCollisionStay(Collision coll) 3、void OnCollisionExit(Collision coll) 其中coll参数的意思是与该脚本挂载对象碰撞的物体,可以使用
Unity3D入门(二):碰撞检测
碰撞器由来 1.系统默认会给每个对象(GameObject)添加一个碰撞组件(ColliderComponent),一些背景对象则可以取消资格组件。 2.在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。为了完整的了解这两种方式,我们必须理解以下概念: (一)碰撞器是一群组件,它包含了很多种类,比如:Box Collider,C
【学习17】Box2D创建物体和碰撞检测
Box2D里面有世界,世界里面有
Unity 物理分层碰撞
需求是这样的,物件一共有4个:枪,骑士,马,盾牌 要求枪不可以刺到 马 和 枪 马 和 马互相可以碰撞 枪 可以刺到 骑士 和 盾。 一开始我自己弄得挺迷糊的,后来突然想到,这玩意不是可以在ProjectSetting里面调吗? 于是乎研究了一小下,做了如下操作 马放到 Default层 枪放到 Physics_Lance层 盾和人放到 Physice_He
【Unity 3D】学习笔记三十七:物理引擎——碰撞与休眠
碰撞与休眠
unity刚体介绍
刚体允许你的游戏对象在物理引擎下运动。在现实途径下刚体可以接受力和力矩使物体移动。任何游戏对象必须包含刚体受重力作用下的附加力,通过脚本,或与其他物体通过NVIDIA PhysX物理引擎。 选项: 质量(Mass):对象德质量 摩擦(Drag):多少空气阻力的物体受力移动时。0意味着没有空气阻力,而无限大使物体立即停止运动。 摩擦角(Angular Drag):当扭矩旋转时,空气阻力对物体
Unity3D物理引擎中刚体组件的运用
物理引擎对于当前大多数游戏都是必不可少的一部分。在虚拟现实逐渐兴起的今天,玩家对游戏的真实感,以及操作感要求越来越高。Unity3D内置PhysX物理仿真引擎,具有高效低耗,仿真度膏的特点。 1、什么是刚体? 刚体使物体能在物理控制下运动。刚体可通过接受力使物体允许效果更加真实。总而言之,Unity3D中任何物体想要受到重力、外力的影响都必须包含一个刚体组件。2、怎样给物体添加刚体
Unity为物体添加物理碰撞效果
1:创建一个Cube 2:Component->Mesh Collider  : 为物体添加一个多边形碰撞体组件 3:添加刚体组件 Component -> RigidBody 此时 该物体已经有了物理下落的属性 在物体下面创建一个Plane  ,会发现物体会落在Plane上 如何增加类似弹跳的效果呢 4:在Project 窗口右键-> Create -> Physic
碰撞体(Collider),触发器(Trigger),刚体(RigidBody)的相关区分
官方解释刚体(Rigidbody):Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重力的影响,通过脚本为游戏对象添加的作用力以及通过NVIDIA物理引擎与其他的游戏对象发生互动的运算都需要游戏对象添加了刚体组件。 用来模拟一个物体受到力作用时的表现,如图中参数,Mass质量...
Unity3d中 树木碰撞问题解析
首先,有学过Unity3d的同学生都知道我们在对地形拖拉树木等表层时,其树木在我们实例运行中,它们都是可以任其它物体穿过! 这是为什么,相信大家不难回答这个问题,因为默认的树木是没有 Collider属性的,当我们尝试的想在Compnent菜单栏中添加 Collider属性时,我们会杯具的发现其添加属性页面都是灰色的,代表我们不能为其添加任何属性。 那么我们如何来解决这个问题呢?其实很简单。
unity 人物碰撞范围的动态修改
人物做不同动作的时候,碰撞范围会有一定的变化, 例如,某些地方,在地面翻滚可以躲过,而正面奔跑就可能会碰到,
Unity 导航网格生成碰撞
在使用 Unity 导航网格进行点击行路的时候,需要提供碰撞体以让鼠标进行射线检测,来得到目的地的坐标点。但是,当遇到比较复杂的地面时,简单的 Box 碰撞体是不够贴合地面的,使用 Mesh 碰撞体又会更耗费资源,所以需要一种简单快速的铺设 Box 碰撞体方案。
Cocos Creator 预制件设置碰撞分组
如果有需求,需要一个预制件生成多个道具,并且道具根据某些属性进行分组 新添加的预制件设置分组 , 可以在预制件脚本里this.node.group = “分组名”this.node.group = "itemGroup"
Unity3D笔记第十四天——角色控制器
角色控制器(Character Controller) Unity中封装了一个非常好用的组件来实现第一人称视角与第三人称视角的控制,我们称之为角色控制器组件(Character Controller)。 Character Controller属性 高度(height):角色的胶囊碰撞体 (Capsule Collider) 高度 半径(Radius):胶囊碰撞体 (Capsule
unity复杂地形检测角色是否在地面上(与地面碰撞)(着地)的方法
这个问题困扰了我几天,在我找到解决方案之前,尝试了以下方法1.射线,在角色坐标(一般是脚底),发射一根向下的射线,长度大约为0.2,这样是的确可以检测到玩家是否在地面的,但只适用于简单地形,如果你配置好了下落动画,那么用这种方法在斜面上往下走的话就会导致检测为false,如果有动画的话,就会播放浮空动画..这是由于角色往前走了一步时,刚体还没来得及让玩家因重力而下降足够的高度,导致射线不能射到斜面...
关于Unity3d中物体之间碰撞检测的方法
检测碰撞有两种方式,一种是利用碰撞器,另外一种就是触发器。 碰撞器的种类: 1.Static Collider 静态碰撞器 指的是相互碰撞的两个物体没有附加刚体而只附加了Collider的游戏对象。这类对象在碰撞时会保持静止,发生碰撞时不会触发任何的方法函数。 2.Rigidbody Collider 刚体碰撞器 在静态碰撞器的基础上,处于运动状态的物体必须要附加刚体组件和带
Unity3D学习记录——刚体跳跃
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Jump : MonoBehaviour { private Rigidbody m_rigidbody; // Use this for initialization void Start ()
Unity物理模拟——实时交互的流体表面
RoalLun原创 转载请声明 效果: 思路: 首先,mesh是由顶点和三角面组成,所以改变顶点位置就可以改变mesh 通过 GetComponent<MeshFilter>().sharedMesh.vertices可以获得一个Vecter3类型的集合,这就是mesh上的所有顶点 遍历mesh的顶点,在每个mesh顶点位置生成一个球形碰撞体, 如下图就有121个碰...
使用unity的mesh绘制三菱柱的碰撞体(3d三角形)
因为项目中有很多类似三菱柱的物体,如果使用meshcollider的话,模型边的弧度会有很多碰撞线,所以就想着能不能自己绘制 一个三菱柱的碰撞体。思路是首先绘制出三菱柱,然后在添加meshcollidre,这样就能绘制出来了。 然后参考博客:http://www.cnblogs.com/JLZT1223/p/6089996.html 首先上效果图:       然后下
cocos creator 学习(八)刚体碰撞组件、物理组件小结
1、如何移动刚体? 2、碰撞组件和物理碰撞组件有什么不同? 3、三种物理碰撞组件有什么不同? 4、物理碰撞组件如何对碰撞回调? 5、碰撞组件如何对于碰撞回调? 1、如何移动刚体? 当我们的一个节点上有一个刚体,我们要进行移动。一般我们都会通过节点的setPosition进行移动, 但是刚体不会被影响,不管是Static、还是Dynamic还是Kinematic都不会被影响
Unity3D中的刚体运动
在Unity3D中,可以通过两种方式利用U3D的物理引擎使一个Rigidbody运动:     1 通过Addforce给Rigidbody作用力使其运动。     2 直接设置Rigidbody的velocity使其具有一定的速度。     采用方法2可以更加精确的控制刚体的运动速度,个人在设计车辆运动的时候比较习惯用这种方式来控制车辆的运动速度。但为了达到一个平滑加速的效果(设置Velo
unity2D的物理碰撞和非物理碰撞的认识
物理碰撞就是精灵之间只碰撞不会穿越对方,非物理碰撞发生碰撞且相互穿越(注意:物理碰撞力过大也会相互穿越)。在unity碰撞中,须有boxcollider组件和主动碰撞方须有rigibody2d组件,即可碰撞。在所有Collider上有一个Is Trigger 的boolean型参数。当发生碰撞反应的时候,会先检查此属性。当激活此选项时,会调用碰撞 双方的脚本 OnTrigger***方法, 反之
Unity3D学习记录——碰撞销毁物体
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Destroy : MonoBehaviour { private Transform m_transform; // Use this for initialization void Start
cocos 刚体穿透解决方案。
刚体穿透:打个比方,比如一个圆球在一个正方形的方框里面不同的弹射。当圆球达到一定的速度时候,会出现一个bug,圆球会直接弹出方框,还没有进行正确的碰撞检测。 这种情况叫做刚体穿透。之所以出现这种情况是因为圆球速度过快,方框的厚度不够,那么在刹那的短时间内系统没有对其进行碰撞检测,而当球刚好已经穿过方框后才进行碰撞检测就不行了。cocos3.7版本提出了他的解决方案,比如在一帧做一次碰撞检测,那么我们
Unity3D实验,关于碰撞消息的机制
实验总结(RigidBody同样适用): * a、消息的接受者为 RigidBody2D,如果本层没有 RigidBody2D,向上(父)寻找 * b、消息的处理方式如下:递归调用接受消息的 RigidBody2D 的处理以及其子对象的处理, * 直到触发触发该碰撞的对象层次(深度优先,只调用触发碰撞的对象的父对象的处理) * c、那么被处理者:为触发碰撞的对象(只要是包含Collider即可)
Cocos2dx创建碰撞刚体
joinToWorld函数创建碰撞刚体: void Monster::joinToWorld(Node* parent){    Sprite* sp = Sprite::createWithSpriteFrameName(m_sModelPath.asString().c_str());     /* 创建刚体 */    PhysicsBody* body = PhysicsBody::cr
Unity3d 物体速度快直接穿透墙体没有发生碰撞怎么办?
物体速度快直接穿透墙体没有发生碰撞
unity中的碰撞检测
本人学生一枚,初学unity若有理解的不对的地方,希望大家多多指教,不胜感激。       同样是在学习过程中遇到关于碰撞器的小问题,查阅相关的材料后,对于碰撞检测的原理有了一定了解,整理相关笔记,与大家分享。       unity中的两个物体要想发生碰撞,必须依赖于自身的碰撞器组件(Collider),并且至少其中一个物体必须附有刚体组件(Rigidbody),其中附带碰撞检测脚本的物体必
Unity实用小工具或脚本—自制2D碰撞
一、       前言 又是一个好久没更新文章了,最近实在是太忙了。前段时间跳槽了,离开了自己曾经熟悉的一个环境,进入了一个全新的环境,初来乍到需要更对的精力去应对。还是废话不多说,一贯的惯例直接上图。 看到标题其实有人就要问了,自制2D的碰撞体。楼主你这是在炫技吗,Unity不是有自带的碰撞体和刚体可以用吗,为什么要吃饱了自己写一个?无奈!职场生活,装逼必死无疑。Unity的碰撞
Unity3D-模拟物理完全弹性碰撞反弹
根据入射方向得到反射方向,并保留相同速率 private Vector3 m_preVelocity = Vector3.zero;//上一帧速度 public void OnCollisionEnter(Collision collision) { if (collision.gameObject.name == "wall") {
unity 所有碰撞器(触发器),碰撞条件、结果,触发条件、结果。。。以及碰撞函数、触发函数的调用。
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。 物体发生碰撞的必要条件:   两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbod
Unity UI检测碰撞
sing UnityEngine; 2 using System.Collections; 3 4 public class RayTest : MonoBehaviour { 5 6 // Use this for initialization 7 void Start () { 8 9 } 10 11 // Update i
Unity中物体添加刚体属性后,运行出现掉落情况如何解决?
去除重力属性。
Unity3D导入的FBX场景模型设置物体之间的碰撞
猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网--Cocos2Dev.com,谢谢!原文地址: http://www.cocos2dev.com/?p=339导入的场景文件,发现人物会穿墙,也就是场景没有碰撞。那么如何添加mesh之间的碰撞呢?最后发现挺简单的。 1、在Project中选中你的场景模型2、在Inspector中勾选 Generate Colliders3、Apply即
Unity3D关于刚体(RigidBody)与碰撞体(Collider)的探索(二)
上一章一直把碰撞体作为不变量来研究的,这一章对碰撞体进行研究: 方案一: A:碰撞体/连碰撞体都不是 B:碰撞体/连碰撞体都不是 以上组合共四组实验,如:1.A是碰撞体,B是碰撞体;2.A连碰撞体都不是,B是碰撞体。。。。。。 实验过程:使A向-Y方向位移,撞击地面B 实验结果:A穿越了B,无任何撞击事件(这是已知的,因为A不是刚体)。 方案二: A:刚体 B:碰
高速移动的物体的碰撞穿透的问题的解决方法
物体的移动跟碰撞的检测可以说是游戏开发者最常见的问题,当在开发测试的过程中可能为出现以下情况(以墙壁跟汽车为例,汽车撞墙壁): 1.墙壁碰撞体太薄,汽车直接穿过墙壁; 2.汽车速度太快,直接穿过墙壁。以上的问题都可以用两幅图来说明: 开始移动(向右): 一帧过后: 在这里说一下,Unity的对碰撞体的碰撞检测是需要时间的,上面的原因是因为在执行一次碰撞检测之前,移动的范围过大,导致此时碰撞
我们是很有底线的
关闭
关闭