控制`Actor`朝向,运动 Learn Unreal Engine (with C++)

控制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. 在设置中映射活动与按键

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

    image-20220108235032147

  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()*/
    }
    

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/408056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zz 聊聊并发(一)

引言 在多线程并发编程中synchronized和Volatile都扮演着重要的角色&#xff0c;Volatile是轻量级的synchronized&#xff0c;它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时&#xff0c;另外一个线程能读到这个修改的值。 它在某…

小故事的蕴意1

①蛇与乌龟的故事   一条大蟒蛇和一条小毒蛇是朋友。   这天他们在路边发现了一只巨大的乌龟。   蛇兄弟想&#xff0c;这么大的个儿&#xff0c;可是一顿美餐啊。   蟒蛇说&#xff1a;我来对付他。   于是蟒蛇施展自己的绝技&#xff0c;用身体将大乌龟牢牢地缠住。…

.Net开发人员应该下载的十种必备工具(三)

NDoc 编写代码文档资料几乎总是一项令人畏惧的任务。我所说的不是早期设计文档&#xff0c;甚至也不是更为详细的设计文档&#xff1b;我说的是记录类上的各个方法和属性。NDoc 工具能够使用反射来分析程序集&#xff0c;并使用从 C# XML 注释生成的 XML 自动为代码生成文档资料…

react学习(69)--置空操作

//重置按钮handleReset () > {this.props.form.setFieldsValue({merchantCode: ,goodsCode: ,});};

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

Actor范围内随机生成 Learn Unreal Engine (with C) SpaceshipBattle fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) Actor范围内随机生成 新建box组件 SpawnArea CreateDefaultSubobject<UBoxComponent>(TEXT("SpawnArea"));RootComponent SpawnArea…

浏览器是如何展示网页的

作为一名前端工程师&#xff0c;我们应该清楚浏览器是如何展示网页的&#xff0c;了解浏览器的原理可以令设计者找到适合的途径把网页展示给用户。 首先&#xff0c;让我们来看看什么是浏览器。网页浏览器是显示网页服务器或档案系统内的文件&#xff0c;并让用户与这些文件互动…

.Net开发人员应该下载的十种必备工具(二)

NUnit NUnit 是为 .NET 框架生成的开放源代码单元测试框架。NUnit 使您可以用您喜欢的语言编写测试&#xff0c;从而测试应用程序的特定功能。当您首次编写代码时&#xff0c;单元测试是一种测试代码功能的很好方法&#xff0c;它还提供了一种对应用程序进行回归测试的方法。NU…

金山毒霸2007亮点介绍

盘点即将过去的2006年&#xff0c;计算机病毒多变种&#xff0c;恶意软件、流氓软件的泛滥&#xff0c;钓鱼欺诈网站的频繁出现&#xff0c;都给网民留下深刻印象。为在新的一年里对杀毒市场展开新一轮争夺&#xff0c;主流杀毒软件也纷纷发布了新一代产品。纵观各厂商提供的解…

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

子弹创建及发射 Learn Unreal Engine (with C) SpaceshipBattle fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 子弹的创建 声明: UPROPERTY(EditAnywhere, Category "Fire")TSubclassOf<ABullet> Bullet;实现: //在空组件处生产子弹GetWorld()->…

爬虫工作量由小到大的思维转变---<第二十四章 Scrapy的`统计数据`收集stats collection>

前言: 前两篇是讲的数据诊断分析,还有一篇深挖解决内存泄漏的文章,目前我还没整理汇编出来;但是,想到分析问题的时候,忽然觉得爬虫的数据统计好像也挺重要;于是,心血来潮准备来插一篇这个------让大家对日常scrapy爬的数据,做到心里有数!不必自己去搅破脑汁捣腾日志,敲计算器了…

uva 10245 The Closest Pair Problem_枚举

题意&#xff1a;求任意两点之间的距离的最少一个距离 思路&#xff1a;枚举一下就可以了 #include <iostream> #include<cstdio> #include<cmath> using namespace std; #define N 10010 struct node{double x,y; }p[N]; int main(int argc, char** argv) {…

react学习(70)--拼接方式

const tabs [{ key: , value: 全部 }, ...MERCHANTLISTSTARTUS];

.Net开发人员应该下载的十种必备工具(一)

用于编写单元测试的 NUnit用于创建代码文档资料的 NDoc用于生成解决方案的 NAnt用于生成代码的 CodeSmith用于监视代码的 FxCop用于编译少量代码的 Snippet Compiler两种不同的转换器工具&#xff1a;ASP.NET 版本转换器和 Visual Studio .NET 项目转换器用于生成正则表达式的 …

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

旋转根组件 Learn Unreal Engine (with C) 在UE4中,根组件是无法旋转定位的,只能够缩放,在一些情况下,我们有旋转根组件的需求 SpaceshipBattle fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 旋转根组件 将SceneComponent设为根组件 然后将StaticMeshComponentattach…

2007.2.14 日程安排

公元二零零七年二月十四日&#xff0c;农历腊月二十七&#xff0c;该天尤为特别&#xff0c;乃春节长假之初始。此外&#xff0c;该天将是片地鸳侣&#xff0c;漫天桃花之好时日&#xff0c;于是吾将广纳四方真气&#xff0c;闭关修炼&#xff0c;与世无争。00&#xff1a;00 -…

react学习(71)--render使用

title: 品牌资质有效期,dataIndex: certificationStartDate,render: (text, row) > {return (<span>{moment(row.certificationStartDate).format(YYYY-MM-DD)}-{moment(row.certificationEndDate).format(YYYY-MM-DD)}</span>);},

2014.3.5-C语言学习小结

知识点:1.结构体 struct2.联合体 union3.枚举4.结构、联合与函数结构体思考:如果现在希望保存一个学生的信息,该如何保存sprintf "zhangsan:18:180”%s:%d:%d, name, height, agechar name[10][100]int age[10]int height[10]1.什么是结构体 struct结构体指的是一种数据结…

什么是Tomcat?

如今&#xff0c;基于Web的应用越来越多&#xff0c;传统的Html已经满足不了如今的需求。我们需要一个交互式的Web&#xff0c;于是便诞生了各种Web语言。如Asp&#xff0c;Jsp&#xff0c;Php等。当然&#xff0c;这些语言与传统的语言有着密切的联系&#xff0c;如Php基于C和…

react学习(72)--row上面加样式

<Row><Col><Buttonstyle{{marginTop: 24px,marginBottom: 24px,float: right,marginRight: 24px,}}type"primary"onClick{this.addApply}>新增申请</Button></Col></Row>

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

禁止摄像机跟随Actor旋转 Learn Unreal Engine (with C) SpaceshipBattle fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 如果直接将摄像机绑定在根组件上,在根组件旋转时,摄像机也会跟着旋转 那么如何让摄像机不跟随根组件旋转,只跟着根组件移动 禁止摄像机跟随根组件…