11-控制Pawn类移动增加镜头摇臂 UE4 C++
在上一篇(10-控制Pawn类移动)基础上增加镜头摇臂功能
在MyPawn.h中增加如下代码:
UPROPERTY(VisibleAnywhere)
class USphereComponent* SphereComp; //定义一个球形组件UPROPERTY(VisibleAnywhere)
class USpringArmComponent* SprintArmComp; //定义一个弹簧臂
在MyPawn.cpp中增加如下代码:
#include "UObject/ConstructorHelpers.h"
#include "Components/SphereComponent.h"
#include "GameFramework/SpringArmComponent.h"
SphereComp = CreateDefaultSubobject<USphereComponent>(TEXT("Sphere"));SphereComp->SetSphereRadius(80); //设置球形组件的半径SphereComp->SetCollisionProfileName(TEXT("BlockAll")); //设置碰撞轮廓名称SphereComp->SetHiddenInGame(false); //不让球形组件隐藏SetRootComponent(SphereComp); //将球形组件设为根组件//RootComponent = CreateDefaultSubobject<USceneComponent>(TEXT("RootComponent")); //创建一个根组件MeshComponent = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MeshComponent")); //创建一个Mesh组件MeshComponent->SetupAttachment(GetRootComponent()); //将Mesh组件绑定在根组件下面//指定网格资源static ConstructorHelpers::FClassFinder<UStaticMesh> MeshComponentAsset(TEXT("StaticMesh'/Game/StarterContent/Shapes/Shape_Sphere.Shape_Sphere'"));if (MeshComponentAsset.Succeeded()) //资源是否找到{//MeshComponent->SetStaticMesh(MeshComponentAsset.Object);MeshComponent->SetRelativeLocation(FVector(0.f,0,-50));}SprintArmComp = CreateDefaultSubobject<USpringArmComponent>(TEXT("SprintArmComp")); //创建一个弹簧臂组件SprintArmComp->SetupAttachment(RootComponent);SprintArmComp->TargetArmLength = 400; //设置弹簧臂的长度为400SprintArmComp->SetRelativeRotation(FRotator(-45.f, 0, 0)); //设置弹簧臂的相对位置SprintArmComp->bEnableCameraLag = true; //让弹簧臂变得有韧性SprintArmComp->CameraLagSpeed = 3;Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera")); //创建一个摄像机组件Camera->SetupAttachment(SprintArmComp, USpringArmComponent::SocketName);
打开BP_MyPawn,如果位置有偏差,可以调节一下:
运行效果,可以看到移动停止后,镜头有一个惯性效果:
11-控制Pawn类移动增加镜头摇臂 UE4 C++相关推荐
- Unity3D类英雄联盟镜头控制(平移和缩放)
Unity3D类英雄联盟镜头控制(平移和缩放) using System.Collections; using System.Collections.Generic; using UnityEngin ...
- [unreal4入门系列之七] UE4中的Actor类和Pawn类
现在我们开始进入UE4的代码开发工作.首先,UE4的类框架是非常庞大的,看起来有点让人措手不及.不过正因为UE4的类框架很完善,有很多常用的代码(函数和类)是已经提供给我们了,我们只需要简单地调用来完 ...
- SAP PS 第11节 收入类项目结果分析及结算
SAP PS 第11节 收入类项目结果分析 1 收入类项目结果分析 1.1 OKG1定义结果分析码 1.2 OKG2定义版本信息,成本控制范围+RA版本 1.2.1 定义结果RA成本要素 1.2.2 ...
- 先设计一个基本账户类,再通过继承基本账户类设计一个储蓄账户类,储蓄账户 类中增加密码、地址、最小余额和利率等成员变量,并增加一些银行账户经常用到的成员函数。 要求: (1)类
先设计一个基本账户类,再通过继承基本账户类设计一个储蓄账户类,储蓄账户 类中增加密码.地址.最小余额和利率等成员变量,并增加一些银行账户经常用到的成员函数. 要求: (1)类中的成员函数具有输入.输出 ...
- C#用户权限控制架构,可以控制到类【重发】
这篇文章是在我的"园龄"不到三天的时候写的,原文地址是:http://www.cnblogs.com/fantong/archive/2012/09/14/2684856.html ...
- Python---已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业)。
题目:已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业). 已知Person类如下: class Person(object):# Per ...
- Java 11:String类中的新方法
Java 11:String类中的新方法 Java 11没有很多特定于语言的功能.因此,令人惊讶的是,在Java String Class中引入了6种新方法. Java 11 String类新方法 让 ...
- Android快速开发不可或缺的11个工具类(下载)
Android快速开发不可或缺的11个工具类(下载) 源码简介 Android快速开发不可或缺的11个辅助类,其中10个来自张鸿洋的博客,1个是我平时积攒的,复制粘贴到你的项目里,添加上包名就可以直接 ...
- Spring:@AutoConfigurexxx注解-控制配置类的加载顺序
1.美图 2.概述 控制配置类的加载顺序(@AutoConfigureAfter.@AutoConfigureBefore.@AutoConfigureOrder) AutoConfigureAfte ...
最新文章
- SAP PM 初级系列12 – 为维修工单关联Task List
- 推荐八款来自极客标签的超棒前端特效[第八期]
- GitLab+Jenkins+Ansible
- mysql report参数_mysqlreport 使用说明
- beoplay耳机序列号查询_BO Beoplay E8评测:真正无线耳机,可自定义EQ设置和透明模式!...
- 美国域名总量增至8023万个:1月净增5.9万个
- Leetcode 863.二叉树中所有距离为K的结点
- 少样本学习系列(四)【元学习与少样本深层理解】
- Linux复习-进程及其管理
- 编程基本功:典型的柳氏风格命名一例
- 常见B/S系统架构设计
- maya mentray_新手快速掌握Maya Mental ray
- 了解新型计算机ppt,第1章计算机系统基础ppt课件.ppt
- 一些可以使用的网上图片地址
- 微信小程序:高德地图搜索周边poi接口实践
- 140种Python标准库、第三方库和外部工具
- 上项线体表位置_人体体表定位标志
- 3U8633——雷达对民航的贡献
- 模拟电子技术-模拟集成电路
- 短视频剪辑自学小技巧,掌握并运用,让你的短视频火起来
热门文章
- java thumbnails 中心点_JavaDemo——java使用Thumbnails处理图片
- 通过TOP命令查找达梦数据库CPU使用率高的会话
- Minecraft开服教程,Windows搭建 我的世界(mc) 1.18.2 服务器教程
- 复习File类和递归方法使用
- 公司发年终奖了,老王坐不住了
- 2021-08-30王道 数据结构 第5章 树与二叉树 p185 第10题
- 《lwip学习3》-- 内存管理
- 基于STM32 STC15和SU-03T离线语音模块的智能语音自拍器设计
- 配置redis缓存实例出现报错 及解决方法
- 【总结一下|PTA】浙大版《Python 程序设计》题目集