public void SetStructFeature <V>(FeatureFlags feature, V value) where V : struct { Features = Features.SetFlags(feature); var flagName = feature.ToString(); var nameField = GetType().GetField(flagName); nameField?.SetValue(this, value); //TODO }
public void UnsetFeature(FeatureFlags feature) { Features = Features.ClearFlags(feature); var flagName = feature.ToString(); var nameField = GetType().GetField(flagName); var prefabField = GetType().GetField(flagName + "Prefab"); nameField?.SetValue(this, null); prefabField?.SetValue(this, null); }
public void SetPrefabFeature <P>(FeatureFlags feature, P prefab = null) where P : PrefabInfo { Features = Features.SetFlags(feature); var flagName = feature.ToString(); var nameField = GetType().GetField(flagName); var prefabField = GetType().GetField(flagName + "Prefab"); nameField?.SetValue(this, prefab?.name); prefabField?.SetValue(this, prefab); }