碰撞,处理碰撞,发射 Learn Unreal Engine (with C++)

9 篇文章 1 订阅

本文使用打砖块游戏举例

碰撞,处理碰撞

碰撞就相当于一个Actor进入另一个Box中,用这个思路就可以处理碰撞了

OnComponentBeginOverlap

当某些内容开始重叠此组件时调用的事件,例如玩家进入触发器。

**委托 事件 **1

AddDynamic( UserObject, FuncName )

用于在动态组播委托上调用AddDynamic()的辅助宏。自动生成函数命名字符串。

当碰撞时

UFUNCTION()
		void OnOverlapBegin(class UPrimitiveComponent* OverlappedComp, class AActor* OtherActor,
			class UPrimitiveComponent* OtherComp, int32 OtherBodyIndexType, bool bFromSweep,
			const FHitResult& SweepResult);
void ABrick::BeginPlay()
{
	Super::BeginPlay();
	Box_Collision->OnComponentBeginOverlap.AddDynamic(this, &ABrick::OnOverlapBegin);
}
/** 当某对象进入球体组件时调用 */
UFUNCTION()
void OnOverlapBegin(class UPrimitiveComponent* OverlappedComp, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);

/** 当某对象离开球体组件时调用 */
UFUNCTION()
void OnOverlapEnd(class UPrimitiveComponent* OverlappedComp, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex);

发射

GetBall()->AddForce(FVector(0.0f, 0.0f, 1000.0f), FName(), true);
SM_Ball->AddImpulse(FVector(140.0f, 0.0f, 130.0f), FName(), true);
image-20220105193538982

UPrimitiveComponent::AddImpulse2

给一个刚体增加一个冲量。好一时瞬间爆发

UPrimitiveComponent::AddForce

对单个刚体施加一个力

在这里插入图片描述


  1. 仅使用C++ | 虚幻引擎文档 (unrealengine.com) ↩︎

  2. UPrimitiveComponent::AddImpulse | Unreal Engine Documentation ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值