【UnrealEngine】官方编程快速入门遇到的坑

2024-03-25 05:08

本文主要是介绍【UnrealEngine】官方编程快速入门遇到的坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

官方编程快速入门文档链接

添加如下代码,VS出现红线错误,或输入过程VS不跳语句补全。

原因:没有include相应的头文件。

UPROPERTY(VisibleAnywhere)
UStaticMeshComponent* VisualMesh;VisualMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));
VisualMesh->SetupAttachment(RootComponent);static ConstructorHelpers::FObjectFinder<UStaticMesh> CubeVisualAsset(TEXT("/Game/StarterContent/Shapes/Shape_Cube.Shape_Cube"));

解决方法:

在.h文件中加入如下内容。必须注意头文件引用的顺序,详情请自行摸索。

#include "Components/StaticMeshComponent.h"
#include "Engine/StaticMesh.h"
#include "UObject/ConstructorHelpers.h"

遇到相应情况,请自行到官方API中查找相应组件需要Include的头文件路径。

 

 

在完成编译后,C++类预览还是处于Actor的球体状态,请查看是否有导入StarterContent资源包。

解决方法,①创建项目时候就选择了StarterContent资源包。(创建项目前可以这样操作,否则按②的操作)

                  ②Add New->AddFeature or Content Pack...->Content Pack ->StarterContent   (如图)

https://blog.csdn.net/Terrell21

下面为能正常运行的源码:

FloatingActor.h

// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Components/StaticMeshComponent.h"
#include "Engine/StaticMesh.h"
#include "UObject/ConstructorHelpers.h"
#include "FloatingActor.generated.h"UCLASS()
class INICONFIG_API AFloatingActor : public AActor
{GENERATED_BODY()public:	// Sets default values for this actor's propertiesAFloatingActor();UPROPERTY(VisibleAnyWhere)UStaticMeshComponent* VisualMesh;UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = "FloatingActor")		//编辑可见,蓝图可读写,标签名 float FloatSpeed = 20.0f;UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = "FloatingActor")float RotationSpeed = 20.0f;protected:// Called when the game starts or when spawnedvirtual void BeginPlay() override;public:	// Called every framevirtual void Tick(float DeltaTime) override;};

FloatingActor.cpp

// Fill out your copyright notice in the Description page of Project Settings.#include "FloatingActor.h"// Sets default values
AFloatingActor::AFloatingActor()
{// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.PrimaryActorTick.bCanEverTick = true;VisualMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));    //创建静态网格组件VisualMesh->SetupAttachment(RootComponent);									//将静态网格组件设置到根组件下。static ConstructorHelpers::FObjectFinder<UStaticMesh> CubeVisualAsset(TEXT("/Game/StarterContent/Shapes/Shape_Cube.Shape_Cube"));//调用结构帮助器查找目标静态网格体。//检测是否成功查找到if (CubeVisualAsset.Succeeded() ){VisualMesh->SetStaticMesh(CubeVisualAsset.Object);				//查找成功,将查找到的静态网格设置到静态网格组件中。VisualMesh->SetRelativeLocation(FVector(0, 0, 0));				//然后对静态网格组件设置相对位置。}}// Called when the game starts or when spawned
void AFloatingActor::BeginPlay()
{Super::BeginPlay();}// Called every frame
void AFloatingActor::Tick(float DeltaTime)
{Super::Tick(DeltaTime);FVector NewLocation = GetActorLocation();			//获取该帧位置FRotator NewRotation = GetActorRotation();			//获取该帧旋转量float RunningTime = GetGameTimeSinceCreation();		//获取时间(场景开始了多久的时间)float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));NewLocation.Z += DeltaHeight * FloatSpeed;						//DeltaHeight 在-1 到 1的范围float DeltaRotation = DeltaTime * RotationSpeed;NewRotation.Yaw -= DeltaRotation;			//绕Z轴旋转, 0不转   + 向北转(顺时针)  - 向南转(逆时针)SetActorLocationAndRotation(NewLocation, NewRotation);}

 

这篇关于【UnrealEngine】官方编程快速入门遇到的坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843912

相关文章

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

qtcreater配置opencv遇到的坑及实践记录

《qtcreater配置opencv遇到的坑及实践记录》我配置opencv不管是按照网上的教程还是deepseek发现都有些问题,下面是我的配置方法以及实践成功的心得,感兴趣的朋友跟随小编一起看看吧... 目录电脑环境下载环境变量配置qmake加入外部库测试配置我配置opencv不管是按照网上的教程还是de