w3086379003 发表于 2018-9-13 19:58:11

【求教】为什么我的碰撞函数一直不触发啊!

我明明都写对的呀!!!为什么不触发事件!!!!逼疯了要!!!
求教
求教!





w3086379003 发表于 2018-9-14 09:08:17

置顶一下

wxiaop 发表于 2018-9-14 11:24:59

hit事件就没打开吧,g

mknmknmk 发表于 2018-9-16 19:24:25

本帖最后由 mknmknmk 于 2018-9-16 19:26 编辑

检查是否有碰撞体 ,碰撞预设里 2者均勾选生成碰撞事件并且 碰撞方和被碰撞方相互均是block。

剑客 发表于 2018-9-17 09:37:29

一般是碰撞通道设置问题

w3086379003 发表于 2018-9-17 17:20:40

wxiaop 发表于 2018-9-14 11:24
hit事件就没打开吧,g

hit开关开了,蓝图里面的碰撞事件能检测到,但是代码编辑的碰撞事件检测不到

w3086379003 发表于 2018-9-17 17:21:46

mknmknmk 发表于 2018-9-16 19:24
检查是否有碰撞体 ,碰撞预设里 2者均勾选生成碰撞事件并且 碰撞方和被碰撞方相互均是block。 ...

两个碰撞体都是block,并且蓝图里面的碰撞事件能检测到,但是代码编辑的碰撞事件检测不到

w3086379003 发表于 2018-9-17 17:22:48

剑客 发表于 2018-9-17 09:37
一般是碰撞通道设置问题

两个都是block,蓝图里面的事件都能检测到的。

mknmknmk 发表于 2018-9-17 18:04:09

做个蓝图继承自那个c++ actor, 检查碰撞预设,模型碰撞体, 如果不是block 则需代码设置

mknmknmk 发表于 2018-9-17 18:16:55

本帖最后由 mknmknmk 于 2018-9-17 18:22 编辑

      
YourActor->SetActorEnableCollision(true);


CollisionComp->BodyInstance.SetCollisionProfileName("Projectile");overlaySphereComponent->SetCollisionProfileName("BlockAll");



或者

   InstancedStaticMeshComponent->BodyInstance.SetCollisionEnabled(ECollisionEnabled::QueryOnly);
   InstancedStaticMeshComponent->BodyInstance.SetObjectType(ECC_WorldDynamic);
   InstancedStaticMeshComponent->BodyInstance.SetResponseToAllChannels(ECR_Ignore);
   InstancedStaticMeshComponent->BodyInstance.SetResponseToChannel(ECC_WorldStatic, ECR_Block);
   InstancedStaticMeshComponent->BodyInstance.SetResponseToChannel(ECC_WorldDynamic, ECR_Block);


页: [1] 2
查看完整版本: 【求教】为什么我的碰撞函数一直不触发啊!