# UEAngelScriptDemo **Repository Path**: GProReat_admin/ueangel-script-demo ## Basic Information - **Project Name**: UEAngelScriptDemo - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-26 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UE Angelscript Demo — ThirdPerson Game System Unreal Engine 5.4 + [Hazelight Unreal Angelscript](https://github.com/Hazelight/UnrealEngine-Angelscript) 游戏系统 Demo。 所有游戏逻辑完全用 **Angelscript** 编写,无需 C++ 编译。 ## 功能模块 ### 🎒 背包系统 | 文件 | 说明 | |------|------| | `InventoryComponent.as` | 数据层:增删移交换拆分排序,10 件默认物品 | | `InventoryGridWidget.as` | UI 层:单元格拖拽、右键删除、选中、稀有度颜色 | | `BackpackWidget.as` | 主面板:开关、信息、整理、一键删灰 | ### ⚔️ 战斗系统 | 文件 | 说明 | |------|------| | `HealthComponent.as` | 血量/治疗/死亡/复活/无敌帧 | | `SkillCooldownComponent.as` | CD 管理器(支持多种技能) | | `ShootSkillComponent.as` | 射击(单发 + 连发,方向检测命中) | | `SuperJumpSkillComponent.as` | 超级跳(CD + 落地 AOE + 空中伤害) | ### 🧩 框架 | 文件 | 说明 | |------|------| | `CharacterSetupComponent.as` | 一键初始化所有游戏组件 | | `GameFramework.as` | GameMode + PlayerController(UI 管理) | ### 🛠 工具 | 文件 | 说明 | |------|------| | `DamageVolume.as` | 持续伤害区域 | | `HealthPickup.as` | 回血拾取物(自动重生) | | `DebugCommands.as` | 控制台命令(`DebugDamage/DebugHeal/...`) | ## 快速开始 ### 1. 蓝图集成 1. 打开 `BP_ThirdPersonCharacter`,添加 `CharacterSetupComponent` 2. 创建 `BP_InventoryGameMode` → 父类 `AInventoryGameMode` 3. 创建 `BP_InventoryPlayerController` → 父类 `AInventoryPlayerController` 4. 在 World Settings 中设置 GameMode 5. Input 绑定 B/Tab → `ToggleBackpack` ### 2. UI 创建(蓝图) - `BP_InventoryPlayerController::BeginPlay` → `Create Widget(BP_Backpack)` → `SetBackpackWidget` - `BP_Backpack` 中放置 `BP_InventoryGrid`,Grid 中放置 `BP_InventoryCell` - `OnBackpackOpened` 事件 → `SetShowMouseCursor true` 详细步骤见 `Script/SETUP.md` ## 环境 - **引擎**: Unreal Engine 5.4 - **Angelscript**: Hazelight Unreal Angelscript - **插件**: `Angelscript`、`AngelscriptEnhancedInput`、`AngelscriptGAS`、`AngelscriptStructUtils` ## Angelscript 语法备忘 | 项目 | 写法 | |------|------| | 空指针 | `nullptr` | | 判空 | `IsValid(Object)` | | 数学 | `Math::Abs/Sin/Clamp/...` | | 时间 | `GetWorld().GetTimeSeconds()` | | 销毁 | 隐藏 + 关碰撞(无 `Destroy`) | | 输入 | `FEnhancedInputActionHandlerDynamicSignature(Object, n"FuncName")` | | Overlap | Tick 轮询代替 `BeginActorOverlap` |