unreal engine5角色把敌人 “挤飞”

系列文章目录

文章目录

前言

unreal engine5玩家和敌人接触时就会互相挤飞,出现这种问题怎么办呢?

一、玩家和敌人接触时就会互相挤飞的原因是什么?

在 UE5 中,角色把敌人 "挤飞" 是因为碰撞预设的 "碰撞响应" 或 "对象类型" 配置错误,需通过调整 ** 碰撞预设(Collision Preset)** 来解决,核心是让 "玩家" 和 "敌人" 的碰撞互不阻挡但能触发检测。

在 Unreal Engine 中设置玩家与敌人之间的碰撞,关键是通过 碰撞通道(Collision Channels) 和 对象响应(Object Responses) 来定义它们之间是否能互相检测、阻挡或忽略。你提供的两个蓝图分别是玩家(BP_ThirdPersonCharacter)和敌人(BP_Dummy)

二、使用步骤

总体目标

玩家可以检测敌人(用于攻击、锁定、感知等)。

敌人可以检测玩家(用于追踪、攻击、触发事件)。

玩家与敌人之间不需要物理阻挡(通常不会互相卡住)。

玩家与敌人之间需要触发事件(如攻击命中、进入感知范围)。

玩家(BP_ThirdPersonCharacter)设置建议

胶囊体碰撞设置

角色网格体碰撞设置

CapsuleComponent(角色主碰撞体)

Collision Preset: Pawn

Object Type: Pawn

Collision Enabled: Query and Physics

响应设置:

对 Pawn:Overlap

对 Visibility:Block(用于射线检测)

对 Camera:Ignore

对 WorldStatic / WorldDynamic:Block

敌人(BP_Dummy)设置建议

BP_Dummy 敌人胶囊体碰撞设置

BP_Dummy 敌人网格体碰撞设置

CapsuleComponent 或感知碰撞体(如 AssassinationRadius)

Collision Preset: 自定义,例如 EnemyPawn

Object Type: 自定义通道 Enemy(你可以在项目设置中添加)

Collision Enabled: Query Only(如果不需要物理阻挡)

响应设置:

对 Pawn:Overlap(让玩家可以感知敌人)

对 Visibility:Block(用于射线检测)

对 Camera:Ignore

对 WorldStatic / WorldDynamic:Block

自定义通道设置(推荐)

在 项目设置 → Collision → Presets 中添加:

新对象通道:

名称:Enemy

默认响应:Ignore

新碰撞预设:

名称:EnemyPawn

Object Type:Enemy

响应:

对 Pawn:Overlap

对 Visibility:Block

对其他通道按需设置

然后在敌人蓝图中将 CapsuleComponent 的 Object Type 设置为 Enemy,并使用 EnemyPawn 预设。

双向感知逻辑建议

玩家攻击时使用 WeaponCollisionBox 设置为 Overlap,响应 Enemy 通道。

敌人感知范围(如 AssassinationRadius)设置为 Overlap,响应 Pawn 通道。

在 OnComponentBeginOverlap 中判断对方是否是玩家或敌人,并触发逻辑。

示例:玩家武器命中敌人

cpp 复制代码
WeaponCollisionBox->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
WeaponCollisionBox->SetCollisionObjectType(ECC_WorldDynamic);
WeaponCollisionBox->SetCollisionResponseToAllChannels(ECR_Ignore);
WeaponCollisionBox->SetCollisionResponseToChannel(ECC_GameTraceChannel2, ECR_Overlap); // 假设 GameTraceChannel2 是 Enemy

总结

蓝图角色 Object Type 对方通道响应 是否阻挡 是否触发事件

玩家 Pawn Enemy → Overlap 否 是(攻击、感知)

敌人 Enemy Pawn → Overlap 否 是(追踪、被攻击)

最终效果

相关推荐
小李也疯狂10 小时前
Unity 中的立方体贴图(Cubemaps)
unity·游戏引擎·贴图·cubemap
呆呆敲代码的小Y10 小时前
【Unity工具篇】| 超实用工具LuBan,快速上手使用
游戏·unity·游戏引擎·unity插件·luban·免费游戏·游戏配置表
EQ-雪梨蛋花汤11 小时前
【Unity优化】Unity多场景加载优化与资源释放完整指南:解决Additive加载卡顿、预热、卸载与内存释放问题
unity·游戏引擎
我的offer在哪里11 小时前
用 Unity 从 0 做一个「可以玩的」游戏,需要哪些步骤和流程
游戏·unity·游戏引擎
泡泡茶壶ᐇ12 小时前
Unity游戏开发入门指南:从零开始理解游戏引擎核心概念
unity·游戏引擎
Var_al14 小时前
抖小Unity WebGL分包命令行工具实践指南
unity·游戏引擎·webgl
天人合一peng15 小时前
unity 通过代码修改button及其名字字体的属性
unity·游戏引擎
GLDbalala19 小时前
Unity基于自定义管线实现经典经验光照模型
unity·游戏引擎
心疼你的一切1 天前
Unity异步编程神器:Unitask库深度解析(功能+实战案例+API全指南)
深度学习·unity·c#·游戏引擎·unitask
呆呆敲代码的小Y1 天前
【Unity 实用工具篇】 | Book Page Curl 快速实现翻书效果
游戏·unity·游戏引擎·u3d·免费游戏·翻书插件