获取摄像机,摄像机切换Learn Unreal Engine (with C++)
摄像机应该是使用最普遍的组件了
获取摄像机,摄像机切换
新建C++类(以CameraActor为父类)
将摄像机在地图中放置
头文件声明
virtual void BeginPlay() override;UPROPERTY(EditAnywhere, BlueprintReadWrite)UBoxComponent* OverlapVolume; // 盒体组件,用于检测人物碰撞UPROPERTY(EditAnywhere, BlueprintReadWrite)TSubclassOf<ACameraActor> CameraToFind; //待寻找的摄像机UPROPERTY(EditAnywhere, BlueprintReadWrite)float CameraBlendTime; // 切换时间virtual void NotifyActorBeginOverlap(AActor* OtherActor) override;virtual void NotifyActorEndOverlap(AActor* OtherActor) override;
实现
void ABlendTriggerVolume::NotifyActorBeginOverlap(AActor* OtherActor) {Super::NotifyActorBeginOverlap(OtherActor);//如果是人物转换就能成功,反之nullptrif(AStaticCameraCharacter* PlayerCharacterCheck = Cast<AStaticCameraCharacter>(OtherActor)){//得到玩家角色的玩家控制器,同上if(APlayerController* PlayerCharacterController = Cast<APlayerController>(PlayerCharacterCheck->GetController())){TArray<AActor*> FoundActors;//获取所有对象的数组UGameplayStatics::GetAllActorsOfClass(GetWorld(), CameraToFind, FoundActors);//摄像机绑定PlayerCharacterController->SetViewTargetWithBlend(FoundActors[0], CameraBlendTime, EViewTargetBlendFunction::VTBlend_Linear);}} }
void ABlendTriggerVolume::NotifyActorEndOverlap(AActor* OtherActor) {Super::NotifyActorEndOverlap(OtherActor);if (AStaticCameraCharacter* PlayerCharacterCheck = Cast<AStaticCameraCharacter>(OtherActor)){if(APlayerController* PlayerCharacterController = Cast<APlayerController>(PlayerCharacterCheck->GetController())){PlayerCharacterController->SetViewTargetWithBlend(PlayerCharacterController->GetPawn(), CameraBlendTime, EViewTargetBlendFunction::VTBlend_Linear);}} }
之后我们基于摄像机类创建蓝图类,并设置相关内容
在蓝图细节中找到如下,并设置
获取摄像机,摄像机切换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++) 在UE4中,根组件是无法旋转定位的,只能够缩放,在一些情况下,我们有旋转根组件的需求 SpaceshipBattle · fa ...
- 子弹创建及发射 Learn Unreal Engine (with C++)
子弹创建及发射 Learn Unreal Engine (with C++) SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 子弹的 ...
- 碰撞,处理碰撞,发射 Learn Unreal Engine (with C++)
本文使用打砖块游戏举例 碰撞,处理碰撞 碰撞就相当于一个Actor进入另一个Box中,用这个思路就可以处理碰撞了 OnComponentBeginOverlap 当某些内容开始重叠此组件时调用的事件, ...
- 控制`Actor`朝向,运动 Learn Unreal Engine (with C++)
控制Actor的朝向,以及Actor的运动 SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 控制Actor朝向鼠标 设置鼠标在游戏中 ...
- 传送,条件加速 Learn Unreal Engine (with C++)
本文以吃豆人游戏为例UE4项目: 自制UE4 小游戏 (gitee.com) 传送 pawn进入box触发OnActorBeginOverlap 获取目标位置,下一帧将pawn坐标更改为目标位置 首先 ...
- 主角的创建与选择 Learn Unreal Engine (with C++)
主角创建有两种方式,本教程以SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 1. 新建游戏模式方式 新建一个蓝图类,选择游戏模式基础 ...
- UNREAL ENGINE 4.12 正式发布!下载地址
UNREAL ENGINE 4.12 正式发布! 下载地址:https://www.unrealengine.com/ Alexander Paschall 在 June 1, 2016 |功能新闻社 ...
最新文章
- 五个方面入手 教你如何成为领导型CIO
- Android开源项目分类汇总-转载
- 2021-04-09 随机模拟—蒙特卡洛方法 Matlab代码实现
- python批量json文件转xml文件脚本(附代码)
- 如何选择Web APP与Native App原生开发模式的区别(转)
- 未来的电视是什么样子?
- WPF 和 windows Form Application的区别
- Centos6.5使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践
- java中直角三角形第三条边,Java编程,根据输入三角形的三个边边长,程序能判断三角形类型为:等边、等腰、斜角、直角三角形,求代码...
- db2中null和空值的区别_MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
- html5 canvas图表,Chart.js基于Canvas画布的HTML5统计图表库 - 资源分享
- arcgis for android 无法加载本地jpg影像解决办法
- volatile解析
- 9000多篇投稿,接收率只有15%,今年的AAAI你中了吗?
- C++ string类成员函数
- GD32F103读写内部FLASH
- 英文对“ Big O”符号的解释是什么?
- 查询域名对应的IP以及查询该IP是否已经备案开放80端口
- 百万富翁 混淆电路
- 怎样配置更完美的图形工作站
热门文章
- linux中win文件转为unix,如何将文本文件从Windows转换为Unix
- linux 批量同步,多主机目录到备份服务器批量同步脚本
- mysql时间聚合_11.MySQL数值、日期和时间、信息、聚合函数
- Linux 代码格式化工具 indent
- 库-libuv 和 libev的对比
- Bash中执行存储过程或普通的SQL命令
- js中的Object.create(null) 和 {} 的区别
- [ECMAScript] 说说你对async/await的理解?
- 25利他行为可以学习和模仿吗
- 工作328:uni-两个页面对象传递