protected override IEnumerator SetUp() { yield return(base.SetUp()); var entity = TestHelpers.CreateSceneEntity(scene); AvatarModifierArea.Model model = new AvatarModifierArea.Model { area = new BoxTriggerArea { box = new Vector3(10, 10, 10) }, }; avatarModifierArea = TestHelpers.EntityComponentCreate <AvatarModifierArea, AvatarModifierArea.Model>(scene, entity, model, CLASS_ID_COMPONENT.AVATAR_MODIFIER_AREA); yield return(avatarModifierArea.routine); model.modifiers = new[] { MOCK_MODIFIER_KEY }; mockAvatarModifier = Substitute.For <AvatarModifier>(); avatarModifierArea.modifiers.Add(MOCK_MODIFIER_KEY, mockAvatarModifier); //now that the modifier has been added we trigger the Update again so it gets taken into account yield return(TestHelpers.EntityComponentUpdate(avatarModifierArea, model)); }
public override IEnumerator ApplyChanges(string newJson) { // Clean up RemoveAllModifiers(); OnAvatarEnter = null; OnAvatarExit = null; // Update model = SceneController.i.SafeFromJson <Model>(newJson); if (model.modifiers != null) { // Add all listeners foreach (string modifierKey in model.modifiers) { AvatarModifier modifier = this.modifiers[modifierKey]; OnAvatarEnter += modifier.ApplyModifier; OnAvatarExit += modifier.RemoveModifier; } } yield break; }