sphereComp->OnComponentBeginOverlap.AddDynamic(this, &Amissile::Overlaphandler); // overlap 函数绑定voidAmissile::Overlaphandler(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex,boolbFromSweep,constFHitResult& SweepResult){} USkeletalMeshCo...
首先,ActorComponent下面当然不是只有SceneComponent,一些UMovementComponent,AIComponent,或者是我们自己写的Component,都是会直接继承ActorComponent的。但很奇怪的是,ActorComponent却是不能嵌套的,在UE的观念里,好像只有带Transform的SceneComponent才有资格被嵌套,好像Component的互相嵌套必须和3D里的transform父子对应起来。
#include"InventoryComponent.generated.h" UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) classNEWTUTORIALPROJECT_APIUInventoryComponent :publicUActorComponent { GENERATED_BODY() public: // Sets default values for this component's properties UInventoryComponent(); UPROPERTY() TArray<A...
1.SceneComponents是拥有变换数据的ActorComponents,就是说SceneComponents是个组件,它封装了变换数据;Actor支持拥有一个SceneComponent的层级,就是说每个Actor支持拥有一个层级结构,这个层级放置一个SceneComponent组件,这个放置的SceneComponent组件包含了该Actor的变换数据,这套变换数据是针对这这个Actor总体而言的,将这个Actor...
创建两个Actor: 添加代码: NewCreateActor.h // Fill out your copyright notice in the Description page of Project Settings. #pragmaonce #include"CoreMinimal.h" #include"GameFramework/Actor.h" #include"Components/StaticMeshComponent.h" #include"Particles/ParticleSystemComponent.h" ...
在UE的日常使用中,我们接触最多的资产就是蓝图(UBlueprint),每个蓝图在创建的时候都需要选择一个父类,根据选择的父类不同,我们可以把蓝图分为Actor蓝图、Component蓝图、Widget蓝图、动作蓝图等等。我们本文将以Actor蓝图为例,延伸学习蓝图的一些基础架构。同时我们会学习到如何通过代码,读取一个蓝图资产在蓝图编辑器中...
【UE4C++】Actor与Component——创建、销毁Actor的⽣成与销毁 创建Actor实例 UClass* TSubclassOf<T> SpawnActor()UPROPERTY(EditAnywhere, Category = "init")UClass* bullet0; // 取类 UPROPERTY(EditAnywhere, Category = "init")TSubclassOf<Amissile> bullet; //取Amissile类及其派⽣类 UPROPERTY(Edit...
1.SceneComponents是拥有变换数据的ActorComponents,就是说SceneComponents是个组件,它封装了变换数据;Actor支持拥有一个SceneComponent的层级,就是说每个Actor支持拥有一个层级结构,这个层级放置一个SceneComponent组件,这个放置的SceneComponent组件包含了该Actor的变换数据,这套变换数据是针对这这个Actor总体而言的,将这个Actor...
Actor和Component都是UObject,有两种生成方式。 构造函数中 CreateDefaultSubobject UHexTile*newTile=CreateDefaultSubobject<UHexTile>(TEXT("HexTileName")); 构造函数外 NewObject staticint32 TileCounter=0;FString TileName=FString::Printf(TEXT("HexTile_%d"),TileCounter++);UHexTile*NewTile=NewObject<UHexT...
new/delete 等内存管理的调用一定要匹配,譬如调用了 new 就一定要调用 delete(而不能 不调用 delet ...