虚幻4C++学习文档翻译4.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
虚幻4C学习文档翻译4

Chapter8-3 创建一个继承自GameMode父类,其名称为GameModeGameModeMyUse 在蓝图中创建继承自GameModeMyUse的蓝图类GameModeMyUse 同时在默认的Pawn中选择 BP_Avatar这个角色,也就是我们之前所新建的角色 最后打开世界设置,在默认的游戏模式GameMode中选取我们自己创建的蓝图类GameModeMyUse,那么再次运行游戏时效果如下: 与此同时,我们也发现我们无法操控人物行动,那是因为我们没有绑定人物的控制按键 打开项目设置,选择input选项 最终达到这样效果,从这些按键绑定中可以看到由于有初学者的案例加入进来,所有绑定的按键很多。那我们先不用管其他已经有的按键绑定,我们先添加自己的按键MyMoveForward和MyMoveRight用W和D的按键来操作人物前和右方向行走。但是仅仅按键绑定人物还并不能移动。我们需要添加C++代码来操控使得人物可以行走 打开VS的编译器,在我们初始创建过的Avatar.h的头文件中我们修改如下 // 绑定用户输入操作 virtual void SetupPlayerInputComponent(class UInputComponent* InputComponent) override; //向右移动 void MoveRight(float amount); //向前移动 void MoveForward(float amount); 截图如下 头文件定义好之后,我们需要在源文件中将功能具体实现 // 绑定用户按键输入操作 void AAvatar::SetupPlayerInputComponent(class UInputComponent* InputComponent) { Super::SetupPlayerInputComponent(InputComponent); //绑定项目设置中按键与头文件中函数功能 InputComponent-BindAxis(MyMoveForward, this, AAvatar::MoveForward); InputComponent-BindAxis(MyMoveRight, this, AAvatar::MoveRight); } 从这一段绑定用户按键输入操作我们可以看出来,我们将项目设置中的按键名称与我们的函数功能名称进行再一次的绑定 void AAvatar::MoveRight(float amount) { //若控制器和移动的数值都存在 if (Controller amount) { //获取右转三维向量 FVector right = GetActorRightVector(); //将移动输入的大小添加到玩家前进向量之中 AddMovementInput(right, amount); } } 这两段我们通过调用虚幻内置的API使得玩家可以操控前进和右转。那么对于左转和后退来说,我们可以在项目设置中重新以上面的方式再次绑定两个按键操作,或者添加两个其他按键并将scale设置为-1 当然我们不能仅仅只控制前后左右的移动,我们还需要设置鼠标的旋转和倾斜 我们在项目设置中新添加MyYaw 和 MyPitch 两个输入按键操作 绑定用户操作内容更新如下 void AAvatar::Yaw(float amount) { AddControllerYawInput(200.f*amount*GetWorld()-GetDeltaSeconds()); } void AAvatar::Pitch(float amount) { AddControllerPitchInput(200.f*amount*GetWorld()-GetDeltaSeconds()); } 这是新添加的对旋转效果的功能添加,本质上还是调用API,比较方便功能的实现 以上基本实现了玩家简单控制人物的效果,当然现在测试起来人行动的并不自然这和我们自带的第三人称效果还有一定的差距 创建非玩家实体 Create None-player character entity NPC 这个创建方式和创建我们自身控制的角色类型相同,同样也是从添加C++代码到项目中选择Character 作为父类进行继承 我们希望这个NPC可以告诉玩家一些信息,那么我们将会使用到FString,FString 是用来代替C++的STL函数库中string的,他有良好的跨平台的特性,所以在UE4中使用C++进行编程我们需要使用字符串类型的话就用FString好了。 //作为NPC的实体碰撞器 UPROPERTY(VisibleAnywhere,BlueprintRe

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档