控制`Actor`朝向,运动 Learn Unreal Engine (with C++)
控制Actor
的朝向,以及Actor
的运动
SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com)
控制Actor
朝向鼠标
设置鼠标在游戏中可见
- 获取玩家控制器
- 鼠标可见设置为
true
PC = Cast<APlayerController>(GetController()); PC->bShowMouseCursor = true;
获取鼠标与主角之间的角度
- 获取角度
- 设置角度
void ASpaceShip::LookAtCursor() {FVector MouseLocation;FVector MouseDirection;//获取鼠标位置PC->DeprojectMousePositionToWorld(MouseLocation,MouseDirection);//获取当前位置到目标位置所需要旋转的角度//只在XY平面旋转FVector TargetLoaction = FVector(MouseLocation.X, MouseLocation.Y, GetActorLocation().Z);FRotator Rotator = UKismetMathLibrary::FindLookAtRotation(GetActorLocation(), TargetLoaction);SetActorRotation(Rotator); }
这样就使主角始终朝向鼠标
控制Actor
运动
在设置中映射活动与按键
- 连续运动选择轴映射, 例如:连续的前进
- 不连续的运动选择操作映射,例如:跳跃,拾取,开火
输入运动
- 相当于将输入先存储
- 让后将存储的向量设置给
Actor
- 然后再
Tick()
中调用Move()
void ASpaceShip::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) {Super::SetupPlayerInputComponent(PlayerInputComponent);PlayerInputComponent->BindAxis("MoveUp", this, &ASpaceShip::MoveUp);PlayerInputComponent->BindAxis("MoveRight", this, &ASpaceShip::MoveRight); }
void ASpaceShip::MoveUp(float Value) {//MovementInput<--------------------(方向)*(值)//Movementinput---->ConsumeMovementInputVectorAddMovementInput(FVector::ForwardVector,Value); }
void ASpaceShip::Move(float time) {//给对象加向量 获取移动向量 *time为了防止速度过大穿越 检测碰撞 AddActorWorldOffset(ConsumeMovementInputVector()* Speed * time, true);/*也可以使用这种方法获取时间 需要头文件*FApp::GetDeltaTime()*/ }
控制`Actor`朝向,运动 Learn Unreal Engine (with C++)相关推荐
- 禁止摄像机跟随`Actor`旋转 Learn Unreal Engine (with C++)
禁止摄像机跟随Actor旋转 Learn Unreal Engine (with C++) SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.c ...
- Actor范围内随机生成 Learn Unreal Engine (with C++)
Actor范围内随机生成 Learn Unreal Engine (with C++) SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com ...
- 子弹创建及发射 Learn Unreal Engine (with C++)
子弹创建及发射 Learn Unreal Engine (with C++) SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 子弹的 ...
- 旋转根组件 Learn Unreal Engine (with C++)
旋转根组件 Learn Unreal Engine (with C++) 在UE4中,根组件是无法旋转定位的,只能够缩放,在一些情况下,我们有旋转根组件的需求 SpaceshipBattle · fa ...
- 碰撞,处理碰撞,发射 Learn Unreal Engine (with C++)
本文使用打砖块游戏举例 碰撞,处理碰撞 碰撞就相当于一个Actor进入另一个Box中,用这个思路就可以处理碰撞了 OnComponentBeginOverlap 当某些内容开始重叠此组件时调用的事件, ...
- 主角的创建与选择 Learn Unreal Engine (with C++)
主角创建有两种方式,本教程以SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 1. 新建游戏模式方式 新建一个蓝图类,选择游戏模式基础 ...
- 传送,条件加速 Learn Unreal Engine (with C++)
本文以吃豆人游戏为例UE4项目: 自制UE4 小游戏 (gitee.com) 传送 pawn进入box触发OnActorBeginOverlap 获取目标位置,下一帧将pawn坐标更改为目标位置 首先 ...
- 获取摄像机,摄像机切换Learn Unreal Engine (with C++)
摄像机应该是使用最普遍的组件了 获取摄像机,摄像机切换 新建C++类(以CameraActor为父类) 将摄像机在地图中放置 头文件声明 virtual void BeginPlay() overri ...
- UNREAL ENGINE 4.13 正式发布!
这次的版本带来了数百个虚幻引擎 4 的更新,包括来自 GitHub 的社区成员们提交的 145 个改进!感谢所有为虚幻引擎 4 添砖加瓦贡献的人们: alk3ovation, Allegorithmi ...
最新文章
- 083_JavaScript Cookies
- UNIX环境C - 系统信号
- Request_请求转发
- ARM Keil MDK开发STM32工程模板
- pip安装的库导入pycharm中
- 【Python】有效资源爬取并集
- 明明的随机数(快排)
- 文件设置索引_什么样的网站结构备受搜索引擎喜爱?
- 使用maven开发javaweb项目
- 随想录(熟练掌握uml)
- 饼状图改变数据显示位置_Tableau--饼图大作战
- 大数据分析工具有哪些特性
- C# AE缓冲区分析 (转)
- python 闭包,装饰器,random,os,sys,shutil,shelve,ConfigParser,hashlib模块
- Python中re.findall的贪心和非贪心算法
- DBC2000是什么?DBC2000数据库文件详解
- FastAPI(56)- 使用 Websocket 打造一个迷你聊天室
- 关于Word文档忘记保护密码的强制解除办法
- Android拓展系列(5)--CyanogenMod源码下载和编译(Android ROM定制基础篇)
- Js网络视频播放器之VideoJsckplayer(直播拉流rtmp、hls)
热门文章
- 手机能打开的表白代码_手机拍照还能加文字?打开这个自带按钮,一键就能添加方便...
- navicat无法连接远程mysql数据库_navicat无法远程连接mysql的解决方法
- android开发工具下载
- 微信支付开发(1) JS API支付
- 高级I/O(七)--readv和writev函数
- el-input 输入框类型;只能输入数字的输入框;保留两位小数输入框;只能输入正整数和0的输入框;手机号正则校验;车牌号码正则校验
- [Redux/Mobx] 在redux中,什么是action?
- [css] 浏览器是怎样判断元素是否和某个CSS选择器匹配?
- [css] 为什么伪类的content不能被选中?
- 工作275:表单验证重置