首页 > 编程语言 >Unreal C++自定义Actor设置StaticMesh和Material

Unreal C++自定义Actor设置StaticMesh和Material

时间:2023-12-12 09:14:56浏览次数:36  
标签:自定义 TEXT AMyActor Material c++ MyActor Actor SM

1. 新建第三人称c++游戏(其它模板开局也可以的)

image

2. 新建继承自Actor的c++类

image
image

3. 添加静态网格体成员SM_MyActor,并在构造函数中进行相应的初始化

UCLASS()
class MYPROJECT9S_API AMyActor : public AActor
{
  GENERATED_BODY()
protected:
  /** Please add a variable description */
  UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Category="Default")
  TObjectPtr<UStaticMeshComponent> SM_MyActor;
// Sets default values
AMyActor::AMyActor()
{
  // 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;

  SM_MyActor = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMeshComponent"));
  RootComponent = SM_MyActor;

  // 加载静态网格资源
  static ConstructorHelpers::FObjectFinder<UStaticMesh> StaticMeshAsset(TEXT("/Game/LevelProtoTyping/Meshes/SM_ChamferCube"));
  if (StaticMeshAsset.Succeeded())
  {
      SM_MyActor->SetStaticMesh(StaticMeshAsset.Object);
  }

  // 设置纹理
  static ConstructorHelpers::FObjectFinder<UMaterialInterface> MaterialAsset(TEXT("/Game/LevelProtoTyping/Materials/MI_Solid_Blue"));
  if (MaterialAsset.Succeeded())
  {
      UMaterialInterface* Material = MaterialAsset.Object;
      SM_MyActor->SetMaterial(0, Material);
  }
}

4. BeginPlay或者Construction中初始化也是可以的

// 构造脚本函数实现
void AMyActor::OnConstruction(const FTransform& Transform)
{
  // 在这里可以添加你的构造脚本代码逻辑
  FString Message = TEXT("Hello World from AMyActor::OnConstruction c++!");

  // 输出日志到屏幕
  if (GEngine)
  {
      GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, Message);
  }

  // 输出日志到控制台
  UE_LOG(LogTemp, Warning, TEXT("%s"), *Message);
}

5. 拖一个到地图看效果

image

其它

  • 引擎版本为5.3.2

标签:自定义,TEXT,AMyActor,Material,c++,MyActor,Actor,SM
From: https://www.cnblogs.com/BuzzWeek/p/17896000.html

相关文章

  • 微信小程序自定义顶部导航栏并适配不同机型
    前言在小程序中,顶部导航栏是一个非常重要的组件,它不仅可以方便用户进行页面切换,还可以提高用户体验。默认情况下,小程序的顶部导航栏是由系统自动生成的,我们只能修改一些基本的样式,如背景色、文字颜色等。但是,如果想要实现更加复杂的样式,如自定义图标、自定义背景等,而且在不同的手......
  • power query自定义列和条件列
    Excel从基础到M函数PowerQuery超级整理建议使用office365进入PQ:选中表格任意位置——开始——数据——自表格区域——勾选表包含标题——确定——进入PQ编辑器 要使用PQ编辑器,表格只能支持两种格式:1、公式里设置表格名称(选中表格任意位置——数据——自表格/区域——‘创......
  • springboot下添加全局异常处理和自定义异常处理
    前言在spring项目中,优雅处理异常,好处是可以将系统产生的全部异常统一捕获处理,自定义的异常也由全局异常来捕获,如果涉及到validator参数校验器使用全局异常捕获也是较为方便。相关代码:GlobalExceptionHandler类:@Slf4j@RestControllerAdvicepublicclassGlobalExceptionHandl......
  • 自定义一个函数供后续方便使用
    在bash配置文件(通常是.bashrc或.bash_profile等)中定义一个名为reloadctl的函数:最终实际执行的是(全局生效):vi/etc/profile 1reloadctl(){2if["$#"-ne2];then3echo"Usage:hehe-n<service_name>"4return15fi67......
  • 15、自定义绘制图形(双缓冲机制)
    效果图 //drawwidget.h#ifndefDRAWWIDGET_H#defineDRAWWIDGET_H#include<QObject>#include<QWidget>#include<QtGui>#include<QMouseEvent>//鼠标事件#include<QPaintEvent>//绘制事件#include<QResizeEvent>//实时获取窗口操作等的大......
  • MyBatis-Plus 自定义 TypeHandler 映射JSON类型为List
    1在mysql5.7支持json类型,那么在表实体是怎么运用的在mybatis-plus中有相关的handler/***Jackson实现JSON字段类型处理器**@authorhubin*@since2019-08-25*/@Slf4j@MappedTypes({Object.class})@MappedJdbcTypes(JdbcType.VARCHAR)publicclassJackso......
  • 实现k8s自定义controller
    创建crdapiVersion:apiextensions.k8s.io/v1kind:CustomResourceDefinitionmetadata:name:fruits.crd.iospec:group:crd.ioversions:-name:v1served:truestorage:trueschema:openAPIV3Schema:type:object......
  • vue3中自定义ref实现防抖
    import{customRef}from"vue";/***@description自定义ref实现防抖*@param{String}value*@param{Number}delay*@returns*/exportconstdebounceRef=(value,delay)=>{lettimer;returncustomRef((track,trigger)=>({......
  • 面试题大揭秘:怎么使用自定义端口运行Spring应用?
    大家好,我是小米!今天我们要聊的话题是一道常见的面试题:怎么使用自定义端口运行Spring应用?这可是每个Java后端开发者都可能会遇到的问题哦!废话不多说,咱们直接进入主题。Spring应用的默认端口首先,让我们回顾一下Spring应用的默认端口。大多数情况下,当你启动SpringBoot应用时,它会在默......
  • Reactor模型
    目录1.Reactor模型是什么2.Reactor模型应用场景3.使用Reactor模型的软件4.Reactor模型与Actor模型的关系本文主要介绍Reactor模型基本概念以及应用场景。1.Reactor模型是什么Reactor模型是一种事件驱动的设计模式,用于处理服务请求,它是由一个或多个并发输入源同时发送给......