问题标签 [rigid-bodies]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
497 浏览

unity3d - 无法检查碰撞-Unity

我目前正在使用 Unity 游戏引擎为格斗游戏开发 AI 演示。我写了一个OnTriggerEnter检测拳头或踢腿的方法;但是,当且仅当角色移动时,它才会检测动作。我试过了rigidboy.WakeUp()rigidbody.AddForce( new Vector3(0,0,0) )但他们没有解决问题。

问题是这样的:

例如,我踢了另一个角色,我的角色的腿进入并退出对撞机,但是OnTriggerEnter直到我移动我的角色才被调用。

我怎么解决这个问题?

这是我的代码:

PS另外,我试过RaycastHit,但它没有用......

0 投票
1 回答
1199 浏览

unity3d - 统一射击弹丸总是返回空异常

所以我目前正在使用 unity3D 开发我的游戏项目,我遇到了这个奇怪的错误。

我正在尝试实例化并向前发射弹丸。这是我的更新代码:

当我尝试播放脚本时,shotProj.AddForce(frontDir) 出现错误,提示 NullReferenceException : Object reference not set to an instance of an object

我检查了“chosenProj”游戏对象并为其分配了弹丸模型,但仍然出现此错误。弹丸不会向前飞,我感到很愚蠢,因为我已经和unity一起工作了一个月了

知道为什么吗?

THX b4

0 投票
4 回答
6006 浏览

character - Unity 4 Character Mesh Collider 未对齐 - 角色掉落。附图片公司源统一资产链接

你好窥视(第一次发帖耶)。

我刚刚开始学习统一,还在学习各种教程并学习 C# 的界面。

我正在运行 Unity 4 并从 Unity 商店下载了免费资产: https ://www.assetstore.unity3d.com/#/content/3174

问题。我在 Unity 中创建了一个平面。转到角色并创建对撞机并将其作为类人生物导入。然后添加一个刚体 =角色从平面上掉下来 然后我添加了一个网格对撞机并将角色的网格附加到对撞机上。网格未正确对齐角色 =角色从平面上掉了下来。 然后我尝试了盒子和胶囊对撞机,它们工作得很好。附上这些,角色就不会掉下来。 然后我尝试了一个角色控制器=角色没有失败。

我想为这个测试角色有一个准确的网格,这样当敌人击中他时,就会有实际命中。

我已经从商店尝试了其他几个免费角色,他们都有同样的问题。有人可以告诉我如何解决这个问题吗?似乎我要么做错了什么,错过了一步,要么只是迷路了。

下面链接到所拍摄问题的图片: 在此处输入图像描述 在此处输入图像描述

0 投票
0 回答
393 浏览

geometry - Box2d中多边形的三角剖分

我对创建像三角扇这样的多边形很感兴趣,但我不知道从哪里开始

http://en.wikipedia.org/wiki/Triangle_fan http://boxcar2d.com/

这是一个有多个固定装置的身体吗?还是多个身体连接到一个身体?因为它可以在撞击时断裂。谢谢

0 投票
2 回答
2643 浏览

c# - Unity 中的高速碰撞

我目前正在编写具有多种速度的船的 C# 模拟。使用我的刚体对撞机,它在低速时工作得很好,但是一旦船达到更高的速度,它就会开始直接穿过其他对撞机

我努力了:

新代码在一定程度上提高了船的碰撞速度,但不足以进行模拟。

0 投票
1 回答
2267 浏览

c++ - 计算刚体惯性张量世界坐标

我正在尝试实现一个小型刚体物理模拟,使用 DirectX 绘制我的对象及其数学库以利用 SIMD 计算(XMMATRIX 和 XMVECTOR 类)。

我的问题是关于Inertia Tensor,我知道使用它的倒数我可以像这样计算角加速度:

并且在局部空间中的惯性张量是恒定的......所以我将它的逆存储在我的 RigidBody 类和其他一些成员中:

现在,在每一帧,我都必须计算世界坐标中的逆惯性张量......此时我有点困惑......

我怎样才能做到这一点?

  1. 我必须将 m_inverseInertiaTensorL 乘以 m_worldTransform 吗?如果是怎么办?第一个是 XMFLOAT3X3 而第二个是 XMFLOAT4X4 ...
  2. 我必须使用方向?在某处我读到类似:“inverseWorldInertiaTensor = rot*inverseBodyInertiaTensor*rot.transpose()”,我认为“rot”是这样的矩阵:

    XMMATRIX 旋转 = XMMatrixRotationQuaternion(orientationW);

我很困惑......有人可以帮助我吗?

0 投票
2 回答
1759 浏览

c# - 统一。试图伪造内部船舶重力。旋转物体的刚体孩子不断滑动

我正在尝试模拟具有内部重力的船舶/空间站。

为了实现这一点,我正在制作船的玩家和船的所有内容。船本身有对撞机,但没有刚体组件。这个想法是,随着船的移动,它的所有内容也会移动。到目前为止非常简单。

为了模拟船上的重力,玩家控制器和所有刚体都关闭了默认重力。代替标准,每一帧沿母船的负向上矢量施加力。

这种工作,但有一个主要问题我必须在这件事变得稳固之前解决。所有刚体都在船内部非常缓慢地滑动。

我知道这可能是由于地板的更新位置加上重力导致了某种剪切力。物体总是随着船的旋转而滑动。

我已经尝试过处理从物理材料到拖动到质量等所有物理属性。这些都没有奏效,我很确定这是由于地板在移动的基本事实,即使 RBs是地板所属对象的子对象。

任何人都有解决方案,而不是某种胶带?我可以尝试使所有东西都运动,并且仅在发生某些外部碰撞或其他情况时“唤醒”,但这可能会变得非常麻烦。我需要尽可能多地以通用方式工作。

一些代码:

在船上

我还制作了一个版本,其中船跟随刚体的运动。我不能直接做父母,所以我不得不简单地手动设置每一帧的变换来匹配物理代理。这仍然具有与上述相同的效果,尽管这可能是我最终想要移动飞船的方式,因为这将更恰当地与飞行机制相关联。

0 投票
2 回答
6364 浏览

android - 无法使用盒子碰撞器在 Unity3d 中进行刚体碰撞

所以我正在使用 Unity 创建一个 Android 游戏,但我无法让任何碰撞工作。两个对象都有盒子对撞机,一个附有刚体。当我点击播放时,它只是从地板上掉下来。所以我改为尝试使刚体对象运动并通过 transform.Transform 而不是刚体.addforce 控制它的运动,然后我在角色前面制作了一个立方体,并带有一个已选中“Is Trigger”的盒子对撞机。然后我将此脚本附加到刚体和立方体上。

但我会将角色移动到方块中,但什么也没有发生!

然后我决定创建一个新的空白场景并制作两个立方体。两者都有盒子对撞机。我将一个拖到另一个之上,并为其添加了刚体物理。但是当我点击播放时,它就从另一个街区掉了下来!任何帮助将不胜感激!

0 投票
1 回答
2828 浏览

unity3d - OnCollisionEnter 未在 Unity4.3 上为 2D 调用

我有两个 2D 对象,一个用于通过弹射器投掷,然后它击中其他 2D 对象。两者都有 collider 和 Rigidbody 都有未选中的 isKinetic 和 isTrigger。当它们相互碰撞时,不会调用 OnCollisionEnter 方法,并且脚本会附加到由弹射器抛出的那个对象上。

0 投票
0 回答
347 浏览

box2d - 看不见的身体?

在我的游戏中,我有大约 20 个方块可供角色行走。每个方块都有一个身体,角色也有一个身体。

有时当我的角色走路时,它被什么东西挡住了。发生这种情况时,我可以通过稍微走到另一边然后返回来“删除”隐形墙。

据我所知,我没有做错任何事。这是我用来绘制块/字符的代码:

特点:

堵塞:

块构造函数:

角色精灵是 33x65,方块精灵是 50x50。