首页 > 其他分享 >Lyra工程相关

Lyra工程相关

时间:2022-10-15 21:35:17浏览次数:47  
标签:工程 Idx TEXT Lyra AbilitySystemComponent Owner CreateDefaultSubobject SpawnedAttr

Ability相关

AttributeSet

AttributeSet显示创建,隐式添加

ALyraCharacterWithAbilities::ALyraCharacterWithAbilities(const FObjectInitializer& ObjectInitializer)
	: Super(ObjectInitializer)
{
	AbilitySystemComponent = ObjectInitializer.CreateDefaultSubobject<ULyraAbilitySystemComponent>(this, TEXT("AbilitySystemComponent"));
	AbilitySystemComponent->SetIsReplicated(true);
	AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Mixed);

	CreateDefaultSubobject<ULyraHealthSet>(TEXT("HealthSet"));
	CreateDefaultSubobject<ULyraCombatSet>(TEXT("CombatSet"));

	// AbilitySystemComponent needs to be updated at a high frequency.
	NetUpdateFrequency = 100.0f;
}

HealthSet和CombatSet创建后作为ALyraCharacterWithAbilities的Subobj存在

void UAbilitySystemComponent::InitializeComponent()
{
	Super::InitializeComponent();

	// Look for DSO AttributeSets (note we are currently requiring all attribute sets to be subobjects of the same owner. This doesn't *have* to be the case forever.
	AActor *Owner = GetOwner();
	InitAbilityActorInfo(Owner, Owner);	// Default init to our outer owner

	// cleanup any bad data that may have gotten into SpawnedAttributes
	for (int32 Idx = SpawnedAttributes.Num()-1; Idx >= 0; --Idx)
	{
		if (SpawnedAttributes[Idx] == nullptr)
		{
			SpawnedAttributes.RemoveAt(Idx);
		}
	}

	TArray<UObject*> ChildObjects;
	GetObjectsWithOuter(Owner, ChildObjects, false, RF_NoFlags, EInternalObjectFlags::Garbage);

	for (UObject* Obj : ChildObjects)
	{
		UAttributeSet* Set = Cast<UAttributeSet>(Obj);
		if (Set)  
		{
			SpawnedAttributes.AddUnique(Set);
			bIsNetDirty = true;
		}
	}

	SetSpawnedAttributesListDirty();
}

此处Component的outer为Actor,从Actor的Subobj拿到AttributeSets并添加到AbilityComponent

标签:工程,Idx,TEXT,Lyra,AbilitySystemComponent,Owner,CreateDefaultSubobject,SpawnedAttr
From: https://www.cnblogs.com/rpg3d/p/16795079.html

相关文章

  • Java:语言相关知识
    版本新功能5泛型、枚举、自动装拆箱、foreach循环、可变参数静态导入(无需指定类名,直接调用静态结构,前提是导包)内省6:GUI7switch-字符串泛型集合:泛型实例化类......
  • 反向代理相关笔记
    注释反向代理,以便将域名地址指向维护页面。具体步骤:a)      cd /etc/httpd/conf 打开文件b)      vimhttp-ssl.conf   修改文件c)     ......
  • List集合相关操作
    packagepackage4;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;publicclassListDemo1{publicstaticvoidmain(String[]......
  • 谁说算法工程师不会写代码
    大家好,我是阿星。我的新书《大规模推荐系统实战》前段时间上市了,收到很多反馈,看着那些或感谢、或认可、或鼓励的句子,我很有成就感,在这里感谢大家的支持!其实上学的时候就有涉......
  • 手持振弦VH501TC采集仪工程现场快速测量传感器
    河北稳控科技手持振弦VH501TC采集仪工程现场快速测量传感器便携式手持设备面板的设计与其他工业设备的主要区别在于具有便携性和可操作性。通过人机进行操作能够对手握区域......
  • RE:从零开始的数论相关学习
    开坑。1-位运算我们知道,C++中的位运算有:&、|、^、~、>>、<<。应用:1-1快速幂:intqpow(inta,intb,intp){intvis=a;intsum=1;while(b){......
  • 同义词INVALID的相关测试
    文档课题:同义词INVALID的相关测试.数据库:oracle11.2.0.464位1、创建同义词scott@ORCL2022-10-1413:34:42>createpublicsynonymsyn_deptforapp2_dept;Synonymcrea......
  • DEMO:表维护视图相关维护及调用
    新建一个数据库表设置成可维护这里可以se11创建表维护视图也可以直接在刚才的界面点新建即可。另外,表字段里有时间和日期。想在创建和修改行项目的时候,日期和时间字段自动填......
  • 增强相关文章整理
    行项目描述1​​VF01开票增强​​2​​客户主数据增强​​3​​IDOCchangepoint enhancement​​4​​BAPI_ACC_DOCUMENT_POST更新BSED数据增强​​5​​生成会计凭证......
  • 常见内置函数及迭代器相关基础
    昨日内容回顾算法简介及二分法算法是解决一类问题的逻辑方法。二分法是最简单的算法,主要用来查找有序数据列表中指定数据。三元表达式三元表达式适用于编写简单的......