C# 正确的ECS(统一)缓冲/去缓冲系统结构问题
修改器=抛光/去毛刺 我目前正在将我的项目从OOP升级到ECS。并且想把旧的换成新的更快的ECS 当前系统的工作方式:基本抽象类C# 正确的ECS(统一)缓冲/去缓冲系统结构问题,c#,unity3d,optimization,buffer,entity,C#,Unity3d,Optimization,Buffer,Entity,修改器=抛光/去毛刺 我目前正在将我的项目从OOP升级到ECS。并且想把旧的换成新的更快的ECS 当前系统的工作方式:基本抽象类Modifier具有一个更新函数,修改器使用该函数来更新其计时器/随时间应用效果等。 还有一些简单的修饰符类,比如AttackSpeedModifier,它们实现了modifier,只关心它们使用的值以及如何使用它们。像这样: protected override void ApplyEffect() { Target.AttackSpeed += Value;
Modifier
具有一个更新函数,修改器使用该函数来更新其计时器/随时间应用效果等。
还有一些简单的修饰符类,比如AttackSpeedModifier
,它们实现了modifier
,只关心它们使用的值以及如何使用它们。像这样:
protected override void ApplyEffect()
{
Target.AttackSpeed += Value;
}
我正在努力寻找一个只使用结构(值类型)的ECS buff/debuff实现。我目前的想法/方法如下:
public struct ExampleFireAttackBuff : IComponentData
{
public float Damage;
public float Cooldown;
}
public struct ModifierElement : IBufferElementData
{
public ModifierType ModifierType;
public float Value1;
public float Value2;
public float Value3;
public float Duration;
public bool IsStackable;
etc...
}