UEC++ 创建自定义类型案例
一子弹类型// .h文件 #include CoreMinimal.h #include GameFramework/Actor.h #include Components/SphereComponent.h #include GameFrameWork/ProjectileMovementComponent.h #include MyActor.generated.h // ... UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtrUStaticMeshComponent Sphere; UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtrUSphereComponent SphereCollision; UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtrUProjectileMovementComponent ProjectileMovement;// .cpp文件 AMyActor::AMyActor() { PrimaryActorTick.bCanEverTick true; Sphere CreateDefaultSubobjectUStaticMeshComponent(TEXT(Sphere)); SphereCollision CreateDefaultSubobjectUSphereComponent(TEXT(SphereCollision)); ProjectileMovement CreateDefaultSubobjectUProjectileMovementComponent(TEXT(ProjectileMovement)); static ConstructorHelpers::FObjectFinderUStaticMesh StaticSphereMesh(TEXT(/Engine/BasicShapes/Sphere.Sphere)); RootComponent Sphere; SphereCollision-SetupAttachment(RootComponent); ProjectileMovement-SetUpdatedComponent(RootComponent); Sphere-SetStaticMesh(StaticSphereMesh.Object); ProjectileMovement-InitialSpeed 500.0; ProjectileMovement-MaxSpeed 2000.0; }二带有增强输入的角色类型// .h文件 #include CoreMinimal.h #include InputActionValue.h #include EnhancedInputComponent.h #include EnhancedInputSubsystems.h #include GameFramework/Controller.h #include GameFramework/SpringArmComponent.h #include Camera/CameraComponent.h #include GameFramework/Character.h #include GameFramework/CharacterMovementComponent.h #include MyCharacter.generated.h class UInputAction; class UInputMappingContext; // ... public: UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtrUSpringArmComponent SpringArm; UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtrUCameraComponent Camera; UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtrUInputMappingContext DefaultMappingContext; UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtrUInputAction MoveAction; UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtrUInputAction LookAction; public: void Move(const FInputActionValue value); void Look(const FInputActionValue value); // ...// .cpp文件 AMyCharacter::AMyCharacter() { PrimaryActorTick.bCanEverTick true; SpringArm CreateDefaultSubobjectUSpringArmComponent(TEXT(SpringArm)); Camera CreateDefaultSubobjectUCameraComponent(TEXT(Camera)); SpringArm-TargetArmLength 400.0f; SpringArm-bUsePawnControlRotation true; SpringArm-SetupAttachment(RootComponent); Camera-SetupAttachment(SpringArm); //控制器只影响相机不影响角色 bUseControllerRotationPitch false; bUseControllerRotationRoll false; bUseControllerRotationYaw false; GetCharacterMovement()-bOrientRotationToMovement true; } void AMyCharacter::BeginPlay() { Super::BeginPlay(); if (auto PlayerController CastAPlayerController(Controller)) if (auto Subsystem ULocalPlayer::GetSubsystemUEnhancedInputLocalPlayerSubsystem(PlayerController-GetLocalPlayer())) Subsystem-AddMappingContext(DefaultMappingContext, 0); } void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); if (auto EnhancedInputComponent CastCheckedUEnhancedInputComponent(PlayerInputComponent)) { EnhancedInputComponent-BindAction(MoveAction, ETriggerEvent::Triggered, this, AMyCharacter::Move); EnhancedInputComponent-BindAction(LookAction, ETriggerEvent::Triggered, this, AMyCharacter::Look); } } void AMyCharacter::Move(const FInputActionValue value) { FVector2D MovementVector value.GetFVector2D(); if (Controller) { const FRotator Rotation Controller-GetControlRotation(); const FRotator YawRotation(0, Rotation.Yaw, 0); const FVector FowardDirection FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X); const FVector RightDirection FRotationMatrix(YawRotation).GetUnitAxis(EAxis::Y); AddMovementInput(FowardDirection, MovementVector.Y); AddMovementInput(RightDirection, MovementVector.X); } } // 5.7使用IMC_Default 和 IMC_MouseLook 将按键和鼠标操作分开 // IMC_Default → 按键操作移动、跳跃、冲刺、交互等 // IMC_MouseLook → 鼠标操作视角旋转 void AMyCharacter::Look(const FInputActionValue value) { FVector2D LookAxisVector value.GetFVector2D(); if (Controller) { AddControllerYawInput(LookAxisVector.X); AddControllerPitchInput(LookAxisVector.Y); } }

相关新闻

智谱 GLM Coding Plan 2026年7月31日套餐变动分析报告

智谱 GLM Coding Plan 2026年7月31日套餐变动分析报告

智谱 GLM Coding Plan 2026年7月31日套餐变动分析报告分析日期:2026年8月2日 数据来源:智谱官方文档 (docs.bigmodel.cn)、IT之家、新浪财经、CreditsPlan.cn、CSDN一、背景概述 2026年7月30日,智谱正式将 GLM Coding Plan 套餐改版升级&…

2026/10/13 10:33:03 阅读更多 →
【2024年AI编程工具终极榜单】:12款经过372小时实测的生产力神器,开发者私藏清单首次公开

【2024年AI编程工具终极榜单】:12款经过372小时实测的生产力神器,开发者私藏清单首次公开

更多请点击: https://intelliparadigm.com 第一章:AI编程工具推荐 现代AI开发已不再依赖单一IDE,而是由协同工作的工具链支撑——从代码补全、调试优化到模型微调与部署,每类工具都承担着关键角色。以下推荐的工具均经过生产环境…

2026/10/2 18:39:34 阅读更多 →
Spring Boot 4.x安全监控方案解析与实践

Spring Boot 4.x安全监控方案解析与实践

1. 为什么Spring Boot 4.x需要全新的安全监控方案?在微服务架构深度普及的今天,系统的可观测性已经成为保障服务稳定性的生命线。Spring Boot 4.x版本对监控体系进行了重大重构,其中最核心的变化就是引入了ObservationFilterChainDecorator机…

2026/10/13 8:52:55 阅读更多 →

最新新闻

用eNSP搭建中小型企业网:VLAN划分、路由与NAT配置实战

用eNSP搭建中小型企业网:VLAN划分、路由与NAT配置实战

简介:面向网络工程学习者与中小型企业网络运维人员的华为ENSP仿真平台实训包,以模拟器方式还原一套可运行的中小企业组网方案。压缩包共19个文件,包括1份拓扑结构文件、8份设备配置文件、5份设备闪存镜像、4份终端配置描述及1个配置打包文件&…

2026/10/13 10:33:12 阅读更多 →
文件系统级追踪:strace、perf trace在I/O分析中的应用

文件系统级追踪:strace、perf trace在I/O分析中的应用

说到I/O性能分析,很多人第一反应就是看iostat、看sar。这些工具确实能告诉你「磁盘有多忙」,但很少能告诉你「到底是哪个进程在搞鬼」。我遇到过太多次这样的场景:磁盘利用率飙到99%,但所有业务方都说自己没问题。这时候&#xff…

2026/10/13 10:33:12 阅读更多 →
在线称重漏气检测一体机到底测什么?食品厂为什么不能拿实验室密封性测试仪代替

在线称重漏气检测一体机到底测什么?食品厂为什么不能拿实验室密封性测试仪代替

很多食品厂在买密封性检测设备时,会把两类完全不同的东西放进同一张比价表:一类是装在包装产线上的在线检测设备,一类是放在质检室里的台式密封性测试仪。两者名字里都带密封两个字,实际管的事情不一样,能解决的问题不…

2026/10/13 10:33:12 阅读更多 →
Chrome历史版本下载与安装避坑:从版本号确定到多版本并存

Chrome历史版本下载与安装避坑:从版本号确定到多版本并存

简介:围绕“Chrome历史版本下载”这一常见需求整理,资源面向开发者、测试人员以及因兼容性、功能测试或业务环境限制需要回退到旧版Chrome的用户。包内通过JSON数据记录了各版本号与操作系统、下载位置的对应关系,并整合了Chromium项目相关的…

2026/10/13 10:33:12 阅读更多 →
BUCK-BOOST

BUCK-BOOST

目录 BUCK-BOOST BUCK-BOOST的原理 BUCK-BOOST的电感选型 BUCK-BOOST的输出电容选型 BUCK-BOOST的输入电容选型 BUCK-BOOST的MOSFET和二极管 损耗计算 BUCKBOOST电路器件计算文章 (qq.com)https://mp.weixin.qq.com/s/ZxlcMmxAdy4gl0fr6OUSEA BUCK-BOOST Buck-Boost 是…

2026/10/13 10:33:12 阅读更多 →
Unity手游微信与支付宝SDK接入实战:从签名配置到支付回调全解析

Unity手游微信与支付宝SDK接入实战:从签名配置到支付回调全解析

简介:面向 Unity 开发者的微信/支付宝 SDK 集成资源包,主要解决 Unity 项目中接入微信登录、微信分享、微信支付和支付宝支付的需求,适合需要快速落地第三方账号体系与支付能力的游戏和应用开发者。压缩包为 rar 格式,约 464.91MB…

2026/10/13 10:32:11 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →