控制Actor的朝向,以及Actor的运动

SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com)

控制Actor朝向鼠标

  1. 设置鼠标在游戏中可见

    • 获取玩家控制器
    • 鼠标可见设置为true
    PC = Cast<APlayerController>(GetController());
    PC->bShowMouseCursor = true;
    
  2. 获取鼠标与主角之间的角度

    • 获取角度
    • 设置角度
    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);
    }
    
  3. 这样就使主角始终朝向鼠标

控制Actor运动

  1. 在设置中映射活动与按键

    • 连续运动选择轴映射, 例如:连续的前进
    • 不连续的运动选择操作映射,例如:跳跃,拾取,开火

  2. 输入运动

    • 相当于将输入先存储
    • 让后将存储的向量设置给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++)相关推荐

  1. 禁止摄像机跟随`Actor`旋转 Learn Unreal Engine (with C++)

    禁止摄像机跟随Actor旋转 Learn Unreal Engine (with C++) SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.c ...

  2. Actor范围内随机生成 Learn Unreal Engine (with C++)

    Actor范围内随机生成 Learn Unreal Engine (with C++) SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com ...

  3. 子弹创建及发射 Learn Unreal Engine (with C++)

    子弹创建及发射 Learn Unreal Engine (with C++) SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 子弹的 ...

  4. 旋转根组件 Learn Unreal Engine (with C++)

    旋转根组件 Learn Unreal Engine (with C++) 在UE4中,根组件是无法旋转定位的,只能够缩放,在一些情况下,我们有旋转根组件的需求 SpaceshipBattle · fa ...

  5. 碰撞,处理碰撞,发射 Learn Unreal Engine (with C++)

    本文使用打砖块游戏举例 碰撞,处理碰撞 碰撞就相当于一个Actor进入另一个Box中,用这个思路就可以处理碰撞了 OnComponentBeginOverlap 当某些内容开始重叠此组件时调用的事件, ...

  6. 主角的创建与选择 Learn Unreal Engine (with C++)

    主角创建有两种方式,本教程以SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 1. 新建游戏模式方式 新建一个蓝图类,选择游戏模式基础 ...

  7. 传送,条件加速 Learn Unreal Engine (with C++)

    本文以吃豆人游戏为例UE4项目: 自制UE4 小游戏 (gitee.com) 传送 pawn进入box触发OnActorBeginOverlap 获取目标位置,下一帧将pawn坐标更改为目标位置 首先 ...

  8. 获取摄像机,摄像机切换Learn Unreal Engine (with C++)

    摄像机应该是使用最普遍的组件了 获取摄像机,摄像机切换 新建C++类(以CameraActor为父类) 将摄像机在地图中放置 头文件声明 virtual void BeginPlay() overri ...

  9. UNREAL ENGINE 4.13 正式发布!

    这次的版本带来了数百个虚幻引擎 4 的更新,包括来自 GitHub 的社区成员们提交的 145 个改进!感谢所有为虚幻引擎 4 添砖加瓦贡献的人们: alk3ovation, Allegorithmi ...

最新文章

  1. 083_JavaScript Cookies
  2. UNIX环境C - 系统信号
  3. Request_请求转发
  4. ARM Keil MDK开发STM32工程模板
  5. pip安装的库导入pycharm中
  6. 【Python】有效资源爬取并集
  7. 明明的随机数(快排)
  8. 文件设置索引_什么样的网站结构备受搜索引擎喜爱?
  9. 使用maven开发javaweb项目
  10. 随想录(熟练掌握uml)
  11. 饼状图改变数据显示位置_Tableau--饼图大作战
  12. 大数据分析工具有哪些特性
  13. C# AE缓冲区分析 (转)
  14. python 闭包,装饰器,random,os,sys,shutil,shelve,ConfigParser,hashlib模块
  15. Python中re.findall的贪心和非贪心算法
  16. DBC2000是什么?DBC2000数据库文件详解
  17. FastAPI(56)- 使用 Websocket 打造一个迷你聊天室
  18. 关于Word文档忘记保护密码的强制解除办法
  19. Android拓展系列(5)--CyanogenMod源码下载和编译(Android ROM定制基础篇)
  20. Js网络视频播放器之VideoJsckplayer(直播拉流rtmp、hls)

热门文章

  1. 手机能打开的表白代码_手机拍照还能加文字?打开这个自带按钮,一键就能添加方便...
  2. navicat无法连接远程mysql数据库_navicat无法远程连接mysql的解决方法
  3. android开发工具下载
  4. 微信支付开发(1) JS API支付
  5. 高级I/O(七)--readv和writev函数
  6. el-input 输入框类型;只能输入数字的输入框;保留两位小数输入框;只能输入正整数和0的输入框;手机号正则校验;车牌号码正则校验
  7. [Redux/Mobx] 在redux中,什么是action?
  8. [css] 浏览器是怎样判断元素是否和某个CSS选择器匹配?
  9. [css] 为什么伪类的content不能被选中?
  10. 工作275:表单验证重置