问题标签 [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.
c# - 如何根据玩家方向改变子弹方向?
我已经阅读这个问题很长时间了,他们建议我在我的代码中实现了一些东西。但我仍然无法弄清楚为什么无法正常工作。如果我的球员面向右边,它会向右射击,但如果它面向左边,它就会向右射击。我的游戏是 2D 的,我的子弹预制件附有这个脚本,我用 C# 编程。
我有我的播放器脚本
unity3d - 两个地形之间的刚体被拖到上一层
如果刚体在地形下方,它会被拖到地形上
我有 2 个地形,一个接一个地形成一个洞穴状的形状。如果我将刚体放在下面的地形上,它就会被拖到上面的地形上。所以我什至不能在那个洞穴里放一个刚体。
我尝试在地形上方使用网格对撞机,而不是使用地形对撞机。但是地形没有实际的网格,所以它不起作用。
有没有办法克服这个问题?
collision-detection - OnCollisionEnter2D 接触点不正确?- Unity2D
我正在尝试将子弹(rigidbody2d,boxcollider2d)射向另一个敌方物体(rigidbody2d,kinematic,circlecollider2d)。我想要这两者之间的碰撞点。当它们发生碰撞时,我想要一个碰撞粒子效果,并且从接触点开始,我想要创建 5 个岩石物体,它们都在不同的方向移动。我应该如何实现这一目标?问题是,我得到的联系点似乎不正确。碰撞发生时会创建碰撞粒子效果,但岩石对象是在靠近接触点而不是接触点的其他点创建的。另外我如何在实例化它们后将岩石对象向不同方向移动?
我的代码:
}
game-physics - 以恒定速度移动物理体
我正在使用具有刚体典型物理属性的 2D 物理引擎
获取/设置质量、摩擦、反弹、重力、线性阻尼、线速度、冲量。
我想以恒定的速度移动这个刚体,是否有一些公式可以用来使用这些力以恒定的速度移动身体。
performance - 快速移动物体2D游戏(Unity3d)
我找到官方统一培训https://www.youtube.com/watch?v=D5MqLcO6A8g 发现bug。(看分数)
我花了大约 2 天的时间来修复它,但失败了。我找到“DontGoThroughThings”脚本并尝试重写以在 2D 中使用。又失败了)
请帮我!
这是重写脚本:
这是统一包https://www.dropbox.com/s/a3n1dalbc1k0k42/Hat%20Trick.unitypackage?dl=0
PS对不起我的英语,谢谢你的帮助!!
c# - Unity中游戏对象的水平重力
我正在制作一个简单的 2D 游戏。
我有gameobject
一个rigidbody
组件。
标准刚体重力拉下我的游戏对象,但我希望重力将游戏对象拉到左边。
我知道如何在编辑 -> 项目设置 ->中将重力设置为向左拉......但是这个设置会将重力改变为所有刚体,这在我的情况下是一个问题。
我只想为 1 个游戏对象设置重力。
c# - 在更新循环之外的 Unity3D 中使用 transform.Translate 时,如何执行碰撞检测?
所以我正在写一个小型多人游戏。为此,我为玩家使用了基本的立方体对撞机。目前,设置为 isKinematic。
每个玩家都从主循环中移出,使用偏移计时器来解决滞后/延迟问题。这工作正常。然而,使用这种方法,碰撞是一个问题。如果可以避免的话,我不想使用 Force - 以前的尝试证明这是一个大问题。transform.Translate() 看起来效果最好,但它不考虑任何击中网格的东西。isKinematic 禁用 OnCollisionEnter。我很想使用rigidbody.velocity,但它需要考虑旋转,而不是四向运动。
这是我目前的刻度代码:
我记得曾经有一些教程结合了rigidbody.velocity 的向前运动和旋转,但是对于我的生活,我找不到它们。有人对这种方法的碰撞有什么建议吗?
c# - Unity Rigidbody 点击移动
我想要一个脚本,当我在我的场景中单击时,我的播放器将旋转并添加一个力并移动直到它到达我的场景中的单击点。
现在,我使用 Vectors 让它工作,并让我的玩家从一个点到另一个点。但我想修改它,这样我就可以使用物理并更好地了解我的玩家移动。就像让他加速开始移动并在他到达我的目标位置时减速
我的脚本现在看起来像这样
但是,当我运行它时,他只是从一个点滑到另一个点。无论我在刚体中施加的阻力或质量如何。
有人可以帮我做出改变吗?或者指出我正确的方向
collision-detection - 刚体物理概念:为什么要即时翻译碰撞形状而不是改变它?
编辑:交叉发布收到了我接受的一些答案,在https://gamedev.stackexchange.com/questions/100404/rigidbody-physics-concept-why-translate-collision-shape-on-the-fly-instead-of-m
我花了一些时间浏览 Java 中的物理引擎源代码,如 Box2D、Phys2D(均为 2D)和 JBullet(3D)。
我观察到,当刚体在每一步中移动并发生变化时,附加到它们的碰撞形状却没有。相反,它们始终位于坐标原点附近。当检查两个刚体的碰撞时,会从每个刚体中获取一个“平移”对象,并用于将两个检查的形状的顶点(或其他定义属性,取决于形状类型)即时转换为它们的附件的世界位置。然后使用这些信息来检测碰撞并对它们做出反应。
我已经得出结论,主要目的是,您可以为多个实体重用相同的形状实例,因为它们在所描述的场景中是无状态的,并且在每个步骤中即时计算所需信息时节省一些内存。
但是,我目前看到将形状的位置属性更改为成员值的更多优势。每个形状的 aabb 和顶点在每一步中都会改变一次,因此当一个形状与多个其他形状相交时,您不需要多次计算相同的顶点。另外,您还可以更改形状的区域属性(损坏变形),因为它仅由一个主体使用。
所以问题是:
为什么使用位置不可变的碰撞形状而不是可变的碰撞形状很常见?
export - 如何从搅拌机中导出 .bullet 文件
我正在尝试使用以下视频作为指南,使用 python 脚本将刚体从搅拌机导出到 .bullet 文件:
https://www.youtube.com/watch?v=fv-Oq5oe8Nw
奇怪的是,有时会创建 .bullet 文件,但有时不会。同样在其他一些项目中,.bullet 文件也从未出现。有谁知道为什么?:/