unity3d如何使刚体不被穿越?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d如何使刚体不被穿越?相关的知识,希望对你有一定的参考价值。

如题,在一个工程中做出来过,在另一个工程中设置基本相同,都添加collider和rigidbody,并且汽车物体刚体勾选了UseGravity,地面物体刚体勾选了isKinematic,做出来汽车物体下落并穿过地面。是否需要勾选isTrigger属性?一般会是什么错误?

这么说吧,rigibody只是加重力给一个物体,而这个物体还是没有质量(质量这东西记得是初中课本说的,感觉有点对不起当年的物理老师,可老师也对不起我,要不是考试,早成功了)
(现实世界必须得有质量才会有重力,但是这是unity3d,3D的世界,没质量就是没质量,意思就是不存在,也就是你看到一个物体有重力,有贴图,有模型,但它就是不存在,所以也就没有碰撞),
所以要2个物体都要有mesh collider(或者box collider),才能不穿透,
反正我也经常忘记,
有些人说什么调整地板rigibody的,到底搞清楚没有啊那些人,反正调整或者勾选什么的,肯定达不到你的要求,
那些忽悠人的,其实关键因素没理解透捏
参考技术A rigidbody是运动物体才要加的,你把地板的rigidbody去掉试试。应该没问题。追问

刚才试过,效果一样

追答

我弄了个项目。属性如图,是不会穿过的。

你的物体可能是过速穿越了.
你在物体的Rigidbody组件中找到Collision Detection改成Continuous.
如果还是不行的话就试一试改成Continuous Dynamic.  (这对物理表现有很大的影响,如果你不关心与高速物体的碰撞,那么就让其为默认的不连续模式Discrete)
场景中最好不要有过多的采用这种检测碰撞的方式.

本回答被提问者采纳

OPENGL如何在改变窗口大小时,使自己的图形不被拉伸保持自己的纵横比,把原理也解释下,不要只给代码

OPENGL如何在改变窗口大小时,使自己的图形不被拉伸保持自己的纵横比,把原理也解释下,不要只给代码 谢谢
请务必详细解释下原理,我想知道计算机后台如何执行这一动作的,谢谢

参考技术A 这里要注意两个概念:视口和视景体,当视口的纵横比和视景体的纵横比相同的时候,改变窗口大小,图像才不会变形;
例如:
控制视口大小为:glViewprot(0,0,400,200);则其纵横比为2
那么控制视景体的参数为:gluPerspective(fovy,2,near,far);可以了
控制视景体还有其他函数,原理是一样的
opengl编程指南有详细解释本回答被提问者和网友采纳

以上是关于unity3d如何使刚体不被穿越?的主要内容,如果未能解决你的问题,请参考以下文章

unity3d/2d刚体addforce如何才能立即停下来,我人物移动每次都会滑行一会

如何使图像识别后出现的东西保持不变? (unity3d vuforia)

Unity3D 中3D刚体组件的力

Unity3d刚体Rigidbody与碰撞检测Collider

unity3D中,给物体添加刚体后,为啥不是掉在地面上,而是穿过地形一直往下落呢?

Unity3d碰撞体刚体OnTriggerEnter和OnCollisionEnter用法与区别