iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0

今天要來實作角色的 近戰攻擊功能,透過輸入按鍵觸發動畫 Montage,讓角色可以進行揮擊攻擊。


攻級按鍵

跟其他按鍵一樣,新增一個 Input Action 然後在IMC_Defulat 設置按鍵。

攻擊函式

新增一個 DoAttack() 函式,裡面播放動畫 Montage。

iThome30daysCharacter.h

UFUNCTION(BlueprintCallable, Category="Input")
virtual void DoAttack(UAnimMontage* AnimMontage);

UPROPERTY(Category="Character: Camera", EditAnywhere, BlueprintReadWrite)
bool bIsAttacking;

iThome30daysCharacter.cpp

void AiThome30daysCharacter::DoAttack(UAnimMontage* AnimMontage)
{
	float duration = AnimMontage->GetPlayLength();
	if (AnimMontage && !bIsAttacking)
	{
		PlayAnimMontage(AnimMontage);
		bIsAttacking = true;
	}else
	{
		bIsAttacking = false;
	}
}

https://ithelp.ithome.com.tw/upload/images/20250922/20171036YQpKqjPq8g.png


未來擴充

目前的系統只做到「播放揮擊動畫」。未來可以再加:

  • 攻擊範圍檢測 (SphereTrace / CapsuleTrace)
  • Combo 連段系統
  • 武器切換

今天先完成最基本的近戰攻擊輸入與動畫播放,明天可以在這基礎上繼續擴充攻擊判定。


上一篇
# Day 7|實作目標鎖定系統(Target Lock System)
下一篇
# Day 9|修復近戰功能 (邏輯+動畫)
系列文
30 天用 Unreal Engine 5 C++ 開發遊戲9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言