国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

6. UE5 RPG AttributeSet的設(shè)置

這篇具有很好參考價(jià)值的文章主要介紹了6. UE5 RPG AttributeSet的設(shè)置。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

AttributeSet 負(fù)責(zé)定義和持有屬性并且管理屬性的變化。開發(fā)者可以子類化UAttributeSet。在OwnerActor的構(gòu)造方法中創(chuàng)建的AttributeSet將會(huì)自動(dòng)注冊(cè)到ASC。這一步必須在C++中完成。

Attributes 是由 FGameplayAttributeData定義的浮點(diǎn)值。 Attributes能夠表達(dá)從角色的生命值到角色等級(jí)到藥瓶的價(jià)格等任何數(shù)值。 如果Actor擁有游戲性相關(guān)的數(shù)值,那么可以考慮使用Attribute。Attributes 通常只能被GameplayEffects 修改,因此ASC可以 預(yù)測(cè) 這個(gè)修改。

一個(gè)Attribute 由兩個(gè)值構(gòu)成 - 一個(gè)基值 BaseValue 和一個(gè)當(dāng)前值CurrentValue. 基值BaseValue是屬性 Attribute的一個(gè)恒值, 而當(dāng)前值 CurrentValue 是 BaseValue 加上GameplayEffects的臨時(shí)修改值。

立即(Instant) GameplayEffects將永久改變BaseValue,而持續(xù)(Duration) 和永恒(Infinite) GameplayEffects 將改變CurrentValue。周期性(Periodic )GameplayEffects像立即(Instant) GameplayEffects一樣將改變BaseValue。
這里官方文檔也說的不大清楚,如果Attribute沒有受到GameplayEffects的影響時(shí),這兩個(gè)值其實(shí)是相同的。而受到GameplayEffects影響時(shí),如果是一次性的修改,則直接修改的時(shí)候BaseValue,CurrentValue也會(huì)跟著改變,兩個(gè)值的結(jié)果相同。如果影響是時(shí)效性的,比如一段時(shí)間內(nèi)提高移動(dòng)速度,那么,GameplayEffects修改的是CurrentValue的值。

定義AttributeSet屬性

AttributeSetBase.h

// 版權(quán)歸暮志未晚所有。

#pragma once

#include "CoreMinimal.h"
#include "AttributeSet.h"
#include "AbilitySystemComponent.h"
#include "AttributeSetBase.generated.h"

// Uses macros from AttributeSet.h
#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \
GAMEPLAYATTRIBUTE_PROPERTY_GETTER(ClassName, PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_GETTER(PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_SETTER(PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_INITTER(PropertyName)

/**
 * 
 */
UCLASS()
class AURA_API UAttributeSetBase : public UAttributeSet
{
	GENERATED_BODY()

public:
	UAttributeSetBase();
	virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;

	UPROPERTY(BlueprintReadOnly,ReplicatedUsing = OnRep_Health, Category="Vital Attributes")
	FGameplayAttributeData Health;
	ATTRIBUTE_ACCESSORS(UAttributeSetBase, Health);

	UPROPERTY(BlueprintReadOnly,ReplicatedUsing = OnRep_MaxHealth, Category="Vital Attributes")
	FGameplayAttributeData MaxHealth;
	ATTRIBUTE_ACCESSORS(UAttributeSetBase, MaxHealth);

	UFUNCTION()
	void OnRep_Health(const FGameplayAttributeData& OldHealth) const;

	UFUNCTION()
	void OnRep_MaxHealth(const FGameplayAttributeData& OldMaxHealth) const;
};

AttributeSetBase.cpp

// 版權(quán)歸暮志未晚所有。


#include "AbilitySystem/AttributeSetBase.h"
#include "Net/UnrealNetwork.h"

UAttributeSetBase::UAttributeSetBase()
{
	InitHealth(100.f);
	InitMaxHealth(100.f);
	InitMana(100.f);
	InitMaxMana(100.f);
}

void UAttributeSetBase::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
	Super::GetLifetimeReplicatedProps(OutLifetimeProps);

	DOREPLIFETIME_CONDITION_NOTIFY(UAttributeSetBase, Health, COND_None, REPNOTIFY_Always);
	DOREPLIFETIME_CONDITION_NOTIFY(UAttributeSetBase, MaxHealth, COND_None, REPNOTIFY_Always);
}

void UAttributeSetBase::OnRep_Health(const FGameplayAttributeData& OldHealth) const
{
	GAMEPLAYATTRIBUTE_REPNOTIFY(UAttributeSetBase, Health, OldHealth);
}

void UAttributeSetBase::OnRep_MaxHealth(const FGameplayAttributeData& OldMaxHealth) const
{
	GAMEPLAYATTRIBUTE_REPNOTIFY(UAttributeSetBase, MaxHealth, OldMaxHealth);
}

在上面的代碼中,我創(chuàng)建了兩個(gè)屬性,一個(gè)是Health,用來表示角色的當(dāng)前血量,另一個(gè)是MaxHealth,代表角色的最大血量。
6. UE5 RPG AttributeSet的設(shè)置,unreal,UE5 RPG,ue5
宏的設(shè)置,編譯時(shí)會(huì)默認(rèn)給變量生成相應(yīng)的Getter以及Setter函數(shù),當(dāng)前設(shè)置會(huì)生成四個(gè)函數(shù),獲取屬性,獲取值,設(shè)置值,以及初始化值。
6. UE5 RPG AttributeSet的設(shè)置,unreal,UE5 RPG,ue5
變量的OnRep 函數(shù)調(diào)用GAMEPLAYATTRIBUTE_REPNOTIFY 宏才能使用預(yù)測(cè)系統(tǒng)
6. UE5 RPG AttributeSet的設(shè)置,unreal,UE5 RPG,ue5
Attribute 需要被添加到GetLifetimeReplicatedProps中,COND_None 為觸發(fā)沒有條件限制,REPTNOTIFY_Always 告訴 OnRep 方法在本地值和服務(wù)器下發(fā)的值即使已經(jīng)相同也會(huì)觸發(fā)(為了預(yù)測(cè)),默認(rèn)情況下OnRep不會(huì)觸發(fā)
如果只是做單機(jī),不需要與服務(wù)器同步復(fù)制,那么OnRep 和GetLifetimeReplicatedProps可以被跳過。

驗(yàn)證屬性

6. UE5 RPG AttributeSet的設(shè)置,unreal,UE5 RPG,ue5

運(yùn)行游戲,按一下~,輸入showdebug abilitysystem。
6. UE5 RPG AttributeSet的設(shè)置,unreal,UE5 RPG,ue5
在最上面一行,顯示當(dāng)前控制角色的AvatarActor和OwnerActor。
我們還可以通過Page Up和Page Down按鈕切換查看目標(biāo)。
在左下角,則可以查看到我們修改的屬性的數(shù)值。文章來源地址http://www.zghlxwxcb.cn/news/detail-800406.html

到了這里,關(guān)于6. UE5 RPG AttributeSet的設(shè)置的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • (UE4/UE5)Unreal Engine中使用HLOD

    (UE4/UE5)Unreal Engine中使用HLOD

    本教程將詳細(xì)介紹在Unreal Engine的不同版本(4.20-4.24、4.25-4.26、5.2)中如何使用Hierarchical Level of Detail (HLOD)。注意,每個(gè)版本中使用HLOD的方法可能會(huì)有所不同。 步驟一:預(yù)先生成LOD打開UE4.21,點(diǎn)擊Content Browser(內(nèi)容瀏覽器)中你想要生成LOD的靜態(tài)網(wǎng)格。 步驟二:在靜態(tài)網(wǎng)格編

    2024年02月10日
    瀏覽(27)
  • 7. UE5 RPG修改GAS的Attribute的值

    7. UE5 RPG修改GAS的Attribute的值

    前面幾節(jié)文章介紹了如何在角色身上添加AbilitySystemComponent和AttributeSet。并且還實(shí)現(xiàn)了給AttributeSet添加自定義屬性。接下來,實(shí)現(xiàn)一下如何去修改角色身上的Attribute的值。 首先創(chuàng)建一個(gè)繼承于Actor的c++類,actor是可以放置到場(chǎng)景中的基類。 創(chuàng)建一個(gè)靜態(tài)模型組件,用來顯示當(dāng)前

    2024年01月18日
    瀏覽(17)
  • Unreal Engine(UE5)中構(gòu)建離線地圖服務(wù)

    Unreal Engine(UE5)中構(gòu)建離線地圖服務(wù)

    1.?????首先需要用到3個(gè)軟件,Unreal Engine,gis office?和?bigemap離線服務(wù)器 Unreal Engine下載地址:點(diǎn)擊前往下載頁(yè)面 Gis office下載地址:點(diǎn)擊前往下載頁(yè)面 Bigemap離線服務(wù)器?下載地址:?點(diǎn)擊前往下載頁(yè)面 Unreal Engine用于數(shù)字孿生項(xiàng)目開發(fā),gis office是一款地理信息軟件,可用于獲取

    2024年01月18日
    瀏覽(27)
  • 【UE5 Cesium】15-Cesium for Unreal 加載本地影像和地形

    【UE5 Cesium】15-Cesium for Unreal 加載本地影像和地形

    目錄 一、加載全球無高度地形 二、加載區(qū)域DEM 三、加載離線地圖影像 1. 先去如下網(wǎng)址下載全球無高度地形:Using a global terrain layer without height detail - #9 by RidhwanAziz - Cesium for Unreal - Cesium Community 下載后如下: 解壓后可以看到是一個(gè).tif格式的文件 2. 打開CesiumLab,需要將tif轉(zhuǎn)為

    2024年02月07日
    瀏覽(20)
  • 【UE5 Cesium】11-Cesium for Unreal 切換Dynamic Pawn為其它Pawn

    【UE5 Cesium】11-Cesium for Unreal 切換Dynamic Pawn為其它Pawn

    ????????我們知道在Cesium for Unreal中默認(rèn)使用的是DynamicPawn來瀏覽地圖場(chǎng)景。DynamicPawn適用全球?yàn)g覽,可以按自定義曲線進(jìn)行飛行。但是DynamicPawn是使用的是地理參考坐標(biāo)系,并不是標(biāo)準(zhǔn)的UE坐標(biāo)系,當(dāng)我們?nèi)驗(yàn)g覽結(jié)束后,可能需要在某一個(gè)地方進(jìn)行瀏覽,可能就需要涉及

    2024年02月12日
    瀏覽(33)
  • 【UE5 Cesium】14-Cesium for Unreal 加載服務(wù)器上的傾斜攝影

    【UE5 Cesium】14-Cesium for Unreal 加載服務(wù)器上的傾斜攝影

    目錄 前言? 步驟 一、下載安裝tomcat 10 二、下載安裝JDK 三、啟動(dòng)Tomcat 四、Tomcat加載傾斜攝影 五、UE中加載Tomcat上的傾斜攝影 ????????上一篇文章(【UE5 Cesium】13-Cesium for Unreal 加載本地傾斜攝影)介紹了如何在UE中加載本地傾斜攝影,本文在該文章基礎(chǔ)上繼續(xù)介紹如何在將

    2024年02月12日
    瀏覽(20)
  • 提升UE5寫實(shí)效果的項(xiàng)目設(shè)置

    提升UE5寫實(shí)效果的項(xiàng)目設(shè)置

    隨著 虛幻引擎5 (Unreal Engine 5,簡(jiǎn)稱UE5)的發(fā)布,游戲開發(fā)者和數(shù)字藝術(shù)家們迎來了一個(gè)全新的機(jī)會(huì),可以在其強(qiáng)大的渲染引擎下創(chuàng)建更加逼真和令人驚嘆的游戲和虛擬場(chǎng)景。然而,要實(shí)現(xiàn)出色的寫實(shí)效果,需要合理設(shè)置項(xiàng)目并運(yùn)用一些技巧和策略, 3DCAT實(shí)時(shí)渲染本文將探討

    2024年02月12日
    瀏覽(39)
  • UE4/UE5 設(shè)置widget中text的字體Outline

    UE4/UE5 設(shè)置widget中text的字體Outline

    想要在藍(lán)圖中控制Widget 中的 text字體,對(duì)字體outline參數(shù)進(jìn)行設(shè)置。 但是藍(lán)圖中無法直接獲取設(shè)置outline參數(shù)的方法: 沒有outline相關(guān)的藍(lán)圖函數(shù) 該參數(shù)本身是在Font類別下的擴(kuò)展,所以只要獲取設(shè)置Font參數(shù)即可進(jìn)行outline的設(shè)置 text連出Font設(shè)置,分割結(jié)構(gòu)體引腳,即可找到out

    2024年02月08日
    瀏覽(17)
  • UE5 UDP通信 UE4.21-UE5.1

    UE5 UDP通信 UE4.21-UE5.1

    目錄 客戶端,發(fā)送數(shù)據(jù) 1.建立字符串變量UDPConnection,綁定連接事件 ?2.連接初始化 ?3.發(fā)送數(shù)據(jù) ?4.關(guān)閉UDP服務(wù) ?服務(wù)器,接收數(shù)據(jù) 1.綁定連接事件 ?2.綁定數(shù)據(jù)接收事件 ?3.開啟UDP服務(wù) ?4.返回?cái)?shù)據(jù) ?5.關(guān)閉UDP服務(wù) ? 需要提供遠(yuǎn)程端IP地址和端口號(hào) 0.0.0.0表示監(jiān)聽所有ip,端口

    2024年02月15日
    瀏覽(120)
  • 初學(xué)UE5,UE4的教程適用UE5嗎?

    初學(xué)UE5,UE4的教程適用UE5嗎?

    UE5是最近推出的一款游戲引擎,相較于UE4而言,它有著更好的性能和靈活的工作流程,同時(shí)也引入了一些新的功能。對(duì)于一些游戲開發(fā)初學(xué)者來說,他們可能會(huì)想知道,是否可以通過UE4的教程來學(xué)習(xí)UE5。在這里,我們將介紹一下這個(gè)問題。 首先,UE5和UE4之間確實(shí)存在一些相通

    2024年02月06日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包