11月5日的代码使用记录
TSubclassOf
UPROPERTY(EditAnywhere) TSubclassOf<AActor> ProjectileClass;
开放一个在蓝图类内的可自定义的接口
在左上角,PrpjectileClass是我们定义的名字
https://docs.unrealengine.com/5.0/en-US/typed-object-pointer-properties-in-unreal-engine/
BindAction
PlayerInputComponent->BindAction("PrimaryAttack",IE_Pressed,this,&ASCharacter::PrimaryAttack);
在Input内添加一个Action事件
BindAction 是一种 “状态”按键输入类,IE_Pressed 表示的是按下的时候执行JumpStart() 函数,IE_Released 表示的是松开的时候执行JumpEnd()事件。BindAxis 按键绑定类型是可以一直按一直执行的,而 BindAction 是按一次执行一次事件。松开执行一次事件,BindAction也可以不配套使用。
GetSocketLocation
FVector HandLocation = GetMesh()->GetSocketLocation("Muzzle_01");
获取指定名称骨骼的Location
FTransform
FTransform SpawnTM = FTransform(GetControlRotation(),HandLocation);
局部变量
SpawnCollisionHandlingOverride与ESpawnActorCollisionHandlingMethod
SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; GetWorld()->SpawnActor<AActor>(ProjectileClass,SpawnTM,SpawnParams);
SpawnCollisionHandlingOverride
Method for resolving collisions at the spawn point.生成点设置碰撞的方法。
ESpawnActorCollisionHandlingMethod.定义可用的策略来处理以穿透阻塞碰撞的方式生成actor的情况。
https://docs.unrealengine.com/5.0/en-US/API/Runtime/Engine/Engine/ESpawnActorCollisionHandlingMeth-/
个人理解来看是SpawnCollisionHandlingOverride为设置什么样的碰撞,ESpawnActorCollisionHandlingMethod是一种碰撞的设置方式,AlwaysSpawn则是碰撞方法。
UProjectileMovementComponent
MovementComp = CreateDefaultSubobject<UProjectileMovementComponent>("MovementComp"); MovementComp->InitialSpeed = 1000.0f; //初始速度 MovementComp->bRotationFollowsVelocity = true; //初始位置的旋转跟随我们的Pawn视角 MovementComp->bInitialVelocityInLocalSpace = true;//初始速度被生成的时候位于本地Location中。
SetCollisionProfileName
SphereComp->SetCollisionProfileName("Projectile");
设置碰撞配置文件