摄像机应该是使用最普遍的组件了

获取摄像机,摄像机切换

  1. 新建C++类(以CameraActor为父类)

  2. 将摄像机在地图中放置

  3. 头文件声明

        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;
    
  4. 实现

    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);}}
    }
    
  5. 之后我们基于摄像机类创建蓝图类,并设置相关内容

    在蓝图细节中找到如下,并设置

获取摄像机,摄像机切换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++) 在UE4中,根组件是无法旋转定位的,只能够缩放,在一些情况下,我们有旋转根组件的需求 SpaceshipBattle · fa ...

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

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

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

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

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

    控制Actor的朝向,以及Actor的运动 SpaceshipBattle · fanxingin/UE4项目 - 码云 - 开源中国 (gitee.com) 控制Actor朝向鼠标 设置鼠标在游戏中 ...

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

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

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

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

  9. UNREAL ENGINE 4.12 正式发布!下载地址

    UNREAL ENGINE 4.12 正式发布! 下载地址:https://www.unrealengine.com/ Alexander Paschall 在 June 1, 2016 |功能新闻社 ...

最新文章

  1. 五个方面入手 教你如何成为领导型CIO
  2. Android开源项目分类汇总-转载
  3. 2021-04-09 随机模拟—蒙特卡洛方法 Matlab代码实现
  4. python批量json文件转xml文件脚本(附代码)
  5. 如何选择Web APP与Native App原生开发模式的区别(转)
  6. 未来的电视是什么样子?
  7. WPF 和 windows Form Application的区别
  8. Centos6.5使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践
  9. java中直角三角形第三条边,Java编程,根据输入三角形的三个边边长,程序能判断三角形类型为:等边、等腰、斜角、直角三角形,求代码...
  10. db2中null和空值的区别_MySQL数据库的表中 NULL 和 空值 到底有什么区别呢?
  11. html5 canvas图表,Chart.js基于Canvas画布的HTML5统计图表库 - 资源分享
  12. arcgis for android 无法加载本地jpg影像解决办法
  13. volatile解析
  14. 9000多篇投稿,接收率只有15%,今年的AAAI你中了吗?
  15. C++ string类成员函数
  16. GD32F103读写内部FLASH
  17. 英文对“ Big O”符号的解释是什么?
  18. 查询域名对应的IP以及查询该IP是否已经备案开放80端口
  19. 百万富翁 混淆电路
  20. 怎样配置更完美的图形工作站

热门文章

  1. linux中win文件转为unix,如何将文本文件从Windows转换为Unix
  2. linux 批量同步,多主机目录到备份服务器批量同步脚本
  3. mysql时间聚合_11.MySQL数值、日期和时间、信息、聚合函数
  4. Linux 代码格式化工具 indent
  5. 库-libuv 和 libev的对比
  6. Bash中执行存储过程或普通的SQL命令
  7. js中的Object.create(null) 和 {} 的区别
  8. [ECMAScript] 说说你对async/await的理解?
  9. 25利他行为可以学习和模仿吗
  10. 工作328:uni-两个页面对象传递