public IEnumerator 캔버스매니져의_ShowMultiple함수는_인스턴스여러개를_띄울수있습니다() { Debug.Log(nameof(캔버스매니져의_ShowMultiple함수는_인스턴스여러개를_띄울수있습니다).ConvertRichText_SetColor(EColor_ForRichText.red)); CanvasManager_Example.DoDestroy_Manager(true); Assert.AreEqual(UICommandHandle <Canvas_ForTest> .g_iInstanceCount, 0); int iRandomCountMax = 0; int iTestCase = 3; for (int i = 0; i < iTestCase; i++) { int iMultipleOpenCount = Random.Range(10, 20); iRandomCountMax += iMultipleOpenCount; yield return(MultiplePopup_ShowHideTest(iMultipleOpenCount, 2)); Debug.LogWarning("------------------------------------"); Debug.LogWarning(string.Format("Test Count : {0} // Test Cycle : {1} / {2}", iMultipleOpenCount, i + 1, iTestCase)); Debug.LogWarning("------------------------------------"); yield return(null); // Handle이 초기화될때까지 기다린다. Assert.AreEqual(UICommandHandle <Canvas_ForTest> .g_iInstanceCount, 0); } yield break; }
public IEnumerator ICanvas_확장함수_테스트() { Debug.LogWarning(nameof(ICanvas_확장함수_테스트).ConvertRichText_SetColor(EColor_ForRichText.red)); CanvasManager_Example.DoDestroy_Manager(true); iWaitFrameCount = Random.Range(3, 6); // 매니져를 통한 팝업 켜기 var pHandle = CanvasManager_Example.DoShow <Canvas_ForTest>(CanvasManager_Example.ECanvasName.Single). Set_OnBeforeShow((Canvas_ForTest pPopup) => pPopup.DoSetWaitFrameCount(iWaitFrameCount)); yield return(null); // 핸들을 통해 UI Object를 얻어올때는 인스턴스가 Null일시 한프레임 기다려야 합니다. while (pHandle.pUIObject.bIsPlay_Coroutine == false) { if (CanvasManager_Example.const_bIsDebug) { Debug.Log("Wait.."); } yield return(null); } Assert.IsTrue(pHandle.pUIObject.bIsPlay_Coroutine); // 팝업의 코루틴 대기 int iWaitFrame = iWaitFrameCount; while (pHandle.pUIObject.bIsPlay_Coroutine) { iWaitFrame--; yield return(null); } Assert.IsFalse(pHandle.pUIObject.bIsPlay_Coroutine); // 팝업에게 바로 Hide 명령 pHandle.pUIObject.DoHide_Coroutine(); while (pHandle.pUIObject.bIsPlay_Coroutine == false) { if (CanvasManager_Example.const_bIsDebug) { Debug.Log("Wait.."); } yield return(null); } Assert.IsTrue(pHandle.pUIObject.bIsPlay_Coroutine); // 팝업의 코루틴 대기 iWaitFrame = iWaitFrameCount; while (pHandle.pUIObject.bIsPlay_Coroutine) { iWaitFrame--; yield return(null); } Assert.LessOrEqual(iWaitFrame, 1); Assert.IsFalse(pHandle.pUIObject.bIsPlay_Coroutine); }
public IEnumerator ICanvas_Basic_Test() { Debug.LogWarning(nameof(ICanvas_Basic_Test).ConvertRichText_SetColor(EColor_ForRichText.red)); CanvasManager_Example.DoDestroy_Manager(true); iWaitFrameCount = Random.Range(3, 6); // 매니져를 통한 팝업 켜기 var pHandle = CanvasManager_Example.DoShow <Canvas_ForTest>(CanvasManager_Example.ECanvasName.Single). Set_OnBeforeShow((Canvas_ForTest pPopup) => pPopup.DoSetWaitFrameCount(iWaitFrameCount)); yield return(null); // 핸들을 통해 UI Object를 얻어올때는 인스턴스가 Null일시 한프레임 기다려야 합니다. while (pHandle.pUIObject.bIsPlay_Coroutine == false) { if (CanvasManager_Example.const_bIsDebug) { Debug.Log("Wait.."); } yield return(null); } // OnShow 코루틴 대기 var pTestTarget = pHandle.pUIObject; Assert.IsTrue(pTestTarget.bIsPlay_Coroutine); // 팝업에서 세팅한 WaitFrameCount와 여기서 세팅한 WaitFrameCount를 일치시키고 // 똑같이 기다립니다. int iWaitFrame = iWaitFrameCount; while (pTestTarget.bIsPlay_Coroutine) { iWaitFrame--; yield return(null); } // 기다린 Frame Count가 거의 일치합니다. Assert.LessOrEqual(iWaitFrame, 1); Assert.IsFalse(pTestTarget.bIsPlay_Coroutine); }