【问题标题】:UE4 Shoot Projectile BluePrint - Projectile spawns but doesn't moveUE4 Shoot Projectile BluePrint - 弹丸生成但不移动
【发布时间】:2017-06-05 21:49:01
【问题描述】:

我正在尝试根据当前选择的武器发射不同的射弹。射弹会生成但不会移动到任何地方。我目前有 2 个弹丸蓝图(父母和孩子):

BP_Projectile (Parent)
BP_PistolBullet (Child)

父类有一个名为 ProjectileSpeed 的浮点数。我已将子类中的 float 值设置为 5000.0 进行测试。

目前子类包含一个带有盒子碰撞的圆柱体,这样我就可以看到渲染的东西。我在圆柱体上启用了“模拟物理”。

然后我在我的角色蓝图中创建了一个名为CollectedWeapons 的数组,类型为BP_Projectile,并添加了一个值设置为BP_PistolBullet 类的元素(我知道射弹不是武器, 但那将在以后扩展:P)

其余的可以在我的“Shoot”蓝图中看到:

如果您需要更多信息,请告诉我。提前致谢。

编辑:

按要求提供 BP_PistolBullet 组件。

编辑:

试图让弹丸向前射击,但无法正确。我尝试了多种不同的方法,但这是最新的尝试:

【问题讨论】:

  • 您能否在“组件”选项卡中显示“BP_PistolBullet”组件的外观?

标签: unreal-engine4


【解决方案1】:

这是因为您试图通过使用“获取子组件”节点来访问圆柱体静态网格组件。 “获取子组件”从一组直接附加的组件中返回一个组件。当您在组件上启用物理模拟时,它是来自其父组件的automaticly detached,因此它可以独立运行。这会导致“默认场景根”的“获取子组件”结果中不存在模拟组件的情况。

您可以通过将物理模拟的子组件保存到 BaseProjectile 中存在的某个变量来快速解决它。但我认为完美的设计是在基础蓝图中使用"Projectile Movement Component",或者在“BeginPlay”事件中直接在蓝图中施加力。

【讨论】:

  • 感谢您的解释。明天下班后我会试试你的建议,让你知道我的进展:)
  • 我喜欢“射弹运动组件”的外观以及它的功能。我已经尝试将它添加到父类和子类(一次 1 个),但都没有使弹丸移动。我看到一个教程说您必须将网格设置为场景根,在这种情况下需要将其设置为父类的根。但我希望能够创建不同的射弹类型(例如子弹、火箭等),所以我需要为每种类型使用不同的网格。这可能吗,还是我需要使用其他方法?
  • 当我在处理我的简单射弹时,我禁用了“模拟物理”并制作了简单的小碰撞框作为组件树的根。 Projectile Movement Component(例如,Should Bounce" 属性)确保了简单的物理特性。在派生的蓝图中,您可以使用碰撞盒作为锚点并将不同的网格或其他碰撞盒附加到其上。
  • 谢谢你的工作,但我的最后一个问题是弹丸从地板上向下射击,而不是朝着我的相机/玩家所面对的方向前进。我正在尝试计算外观旋转以使其朝正确的方向拍摄,但我无法正确处理。我尝试了几种方法,但似乎没有任何效果。我已经添加了我最近对该问题的尝试的屏幕截图。
  • 确保您的射弹 X 轴指向前方,并且射弹运动组件已将“速度”设置为指向 X 轴。然后,您可以在生成弹丸时直接使用相机旋转作为初始变换。
猜你喜欢
  • 1970-01-01
  • 2013-11-10
  • 2016-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
相关资源
最近更新 更多