Unreal Engine Rider 学习笔记二 旋转,魔法攻击 11月5日

添加一个角色与动画蓝图

这里使用的是虚幻商城官方的Gideon

设置角色旋转方向

首先补充input

void ASCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); PlayerInputComponent->BindAxis("MoveForward",this,&ASCharacter::MoveForward); PlayerInputComponent->BindAxis("MoveRight",this,&ASCharacter::MoveRight); PlayerInputComponent->BindAxis("Turn",this,&APawn::AddControllerYawInput); PlayerInputComponent->BindAxis("Lookup",this,&APawn::AddControllerPitchInput); }

在.h文件内添加

void MoveRight(float Value);

并且在.cpp内添加

void ASCharacter::MoveRight(float Value) { AddMovementInput(GetActorRightVector(),Value); }

在MoveForward内添加

void ASCharacter::MoveForward(float Value) { FRotator ControlRot = GetControlRotation(); ControlRot.Pitch = 0.0f; ControlRot.Roll = 0.0f; AddMovementInput(ControlRot.Vector(),Value); }

效果图

最终效果:角色跟随鼠标选择而旋转

创建魔法攻击

创建一个类,名字为SMagic

进入Magic.h,在保护项内创建组件

UPROPERTY(VisibleAnywhere) USphereComponent* SphereComp; UPROPERTY(VisibleAnywhere) UParticleSystemComponent* EffectComp; UPROPERTY(VisibleAnywhere) UProjectileMovementComponent* MovementComp;

代码部分具体可看Unreal Engine Rider 代码使用记录

在.cpp内添加功能

修改SCharacter

在角色内暴露一个actor类

UPROPERTY(EditAnywhere) TSubclassOf<AActor> ProjectileClass;

添加一个void

void PrimaryAttack();

在Input内新建一个Action层

PlayerInputComponent->BindAction("PrimaryAttack",IE_Pressed,this,&ASCharacter::PrimaryAttack);

写完void功能

void ASCharacter::PrimaryAttack() { FVector HandLocation = GetMesh()->GetSocketLocation("Muzzle_01"); FTransform SpawnTM = FTransform(GetControlRotation(),HandLocation); FActorSpawnParameters SpawnParams; SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; GetWorld()->SpawnActor<AActor>(ProjectileClass,SpawnTM,SpawnParams); }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值