[Test] public void BoolStateContructedTrue() { var bs = new BoolState(true); Assert.AreEqual(true, bs.Value, string.Format("After consturcted a BoolState with (True) the BoolState.Value should return (True)")); }
[Test] public void FalseBoolStateShouldNotTriggerOnChangeEventOnSetValueFalse() { var bs = new BoolState(false); Assert.IsFalse(TestEventTriggerAfterChangeValue(bs, false, bs.OnChange), string.Format("BoolState should NOT trigger OnChange event on Value change from (False) to (False)")); }
private static void RecordActivateDeactivate(GameObject g, BoolState value) { RecordObject(g, value, record => { GameObject target = (GameObject)record.Target; BoolState activate = (BoolState)record.State; if (target && target.activeSelf != activate.value) { ExposeToEditor exposeToEditor = target.GetComponent <ExposeToEditor>(); if (exposeToEditor) { exposeToEditor.MarkAsDestroyed = !activate.value; } else { if (activate.value) { //恢复组件判断超不超数量 if (!MapEditorInputMgr.ins.IsExceedMaxObjectCount(target)) { target.SetActive(activate.value); //撤销操作没有刷新装饰 if (MapObjectRoot.ins != null) { MapObjectRoot.ins.AddCheckDecrate(target); } } } else { target.SetActive(activate.value); } } return(true); } return(false); }, record => { BoolState activate = (BoolState)record.State; if (activate.value) { return; } GameObject target = (GameObject)record.Target; if (target) { ExposeToEditor exposeToEditor = target.GetComponent <ExposeToEditor>(); if (exposeToEditor) { if (exposeToEditor.MarkAsDestroyed) { Object.DestroyImmediate(target); } } else { if (!target.activeSelf) { Object.DestroyImmediate(target); } } } }); }