예제 #1
0
    [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)"));
    }
예제 #2
0
    [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)"));
    }
예제 #3
0
 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);
                 }
             }
         }
     });
 }