public void ReadFixedNumberOfLinesQuickly() { int i = 0; bool complete = false; var lines = Yields.GetLines("TestLines.txt"); var start = DateTime.Now; foreach (var line in lines) { Console.WriteLine(line); ++i; if (line.Contains("That's ten!")) { complete = true; break; } } var end = DateTime.Now; Assert.Equal(10, i); Assert.True(complete); // less than 10 ms to complete? Assert.True((end - start).TotalMilliseconds < 10); }
IEnumerator Start() { // warming up. new instance with 1 second delay will be allocated here. yield return(Yields.WaitForSeconds(1f)); var startTime = Time.time; // no new allocations - reuse pooled instance. yield return(Yields.WaitForSeconds(1f)); // should be around 1. Debug.Log(Time.time - startTime); // no new allocations - reuse pooled instance. yield return(Yields.WaitForSeconds(1f)); // should be around 2. Debug.Log(Time.time - startTime); // new instance with 2 seconds delay will be allocated here. yield return(Yields.WaitForSeconds(2f)); // should be around 4. Debug.Log(Time.time - startTime); // case for checking that it works without GC allocations - you can open profiler and check it. StartCoroutine(OnTest1()); while (true) { // Debug.Log("at start"); // no new allocations - reuse pooled instance. yield return(Yields.WaitForSeconds(2f)); } }
public void TimeoutReadingLinesOneAtATime() { int linesRead = 0; Action a = () => { var lines = Yields.GetLines("TestLines.txt"); var timeout = DateTime.Now.AddSeconds(5); foreach (var line in lines) { // write to the console to slow us down Console.WriteLine(line); ++linesRead; if (DateTime.Now > timeout) { throw new TimeoutException(); } } }; Assert.Throws <TimeoutException>(() => a()); Assert.InRange(linesRead, 100, 1000000); // actual length 1,187,770 lines }
/** * @brief NPC Animation 재생 이벤트, * 우선 코루틴으로 만들어 두고 후에 필요하면 Play, Stop함수 만들어 코루틴 제어하자. */ IEnumerator NpcAniPlay() { int aniIdx = (int)playAni; while (true) { float loopTime = playTime; //랜덤 모드 일 경우 재생할 AniIdx 랜덤하게 변경 if (playMode == PlayMode.RANDOM) { aniIdx = Random.Range(0, npcAniName.Length - 1); } //Play Time 체크 npcAnim.SetBool("IsPlay", true); while ((loopTime -= Time.deltaTime) > 0) { npcAnim.Play(npcAniName[aniIdx]); yield return(Yields.EndOfFrame); } npcAnim.SetBool("IsPlay", false); //플레이가 끝나면 대기시간 만큼 대기 yield return(Yields.WaitSeconds(waitTime)); } }
public async Task <IActionResult> Edit(int id, [Bind("YieldId,Yield,CostPerTray,ProductsId,DateIn,DateOut")] Yields yields) { if (id != yields.YieldId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(yields); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!YieldsExists(yields.YieldId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["ProductsId"] = new SelectList(_context.Products, "Id", "Id", yields.ProductsId); return(View(yields)); }
/** * @brief 열기구가 바닥에 착지하면 플레이어가 일어나며 플레이어 카메라를 셋팅. */ IEnumerator LandingEvent() { yield return(Yields.WaitSeconds(1f)); Destroy(eventCamOne); Destroy(eventCamTwo); PlayerInfo.Instance.Anim.speed = 1; }
/** * @brief animation 재생 후 역재생 */ private IEnumerator PlayAndReverseEffectTime() { yield return(PlayEffectTime()); currentPlayTime = endPlayTime; yield return(Yields.WaitSeconds(3f)); yield return(ReverceEffectTime()); }
protected override System.Collections.IEnumerator PurchaseInternal( FutureTask <bool> future, int count) { yield return(Yields.WaitForNextPolling()); future.Set(true); yield break; }
/** * @brief BGM 정보 출력 * @param info : 출력할 배경음 정보 */ private IEnumerator PrintBgmInfo(BgmInfo info) { yield return(Yields.WaitSeconds(3.0f)); string txt = "BGM INFO\n" + "Artist : " + info.artist + "\n" + "Title : " + info.title; NotifyMessageEvent.Instance.PrintSubText(txt); }
IEnumerator OnTest1() { while (true) { // Debug.Log("at ontest1"); // no new allocations - reuse pooled instance. yield return(Yields.WaitForSeconds(1f)); } }
public async Task <IActionResult> Create([Bind("YieldId,Yield,CostPerTray,ProductsId,DateIn,DateOut")] Yields yields) { if (ModelState.IsValid) { _context.Add(yields); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["ProductsId"] = new SelectList(_context.Products, "Id", "Id", yields.ProductsId); return(View(yields)); }
/** * @brief Player가 기구에서 내리면 큐브로 변경 후 이벤트 오브젝트 제거 */ IEnumerator EndEvent() { yield return(Yields.WaitSeconds(1.0f)); balloon.SetActive(false); yield return(ParticleManager.Play(psBalloon)); WeaponManager.Instance.SetCubeWeapon(); miniMap.SetActive(true); Destroy(this.transform.parent.gameObject); }
public void CountTo() { var expected = new List <int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var index = 0; foreach (var count in Yields.CountTo(10)) { Assert.Equal(count, expected[index]); ++index; } }
/** * @brief list에 있는 텍스트 mesh를 랜덤하게 대상으로 선택해 파티클 형성 */ IEnumerator PlayTextParticle() { while (meshs.Count > 0) { var idx = Random.Range(0, meshs.Count - 1); var shape = ps.shape; shape.mesh = meshs[idx]; yield return(ParticleManager.Play(ps)); yield return(Yields.WaitSeconds(3f)); } }
/** * @brief 낙하 중인 플레이어에 열기구를 생성해 낙하 속도를 줄인다. */ IEnumerator PlayThirdEvent() { //큐브가 플레이어의 낙하 방향으로 하강 iTween.MoveTo(cube, iTween.Hash("position", balloon.transform.position, "time", 8)); yield return(Yields.WaitSeconds(1.5f)); psCube.Stop(); //큐브가 플레이어를 따라잡으면 2번 카메라 셋 후 열기구 애니메이션 실행 eventCamTwo.SetActive(true); yield return(ParticleManager.Play(psBalloon)); balloon.SetActive(true); }
public void ExecuteFinallyBlockWhenEnumeratorDisposed() { var previousFinallyCount = Yields.FibonacciFinallyCount; using (var fibEnumerator = Yields.GetFibonacciNumbers().GetEnumerator()) { for (int i = 0; i < 10; ++i) { fibEnumerator.MoveNext(); } } Assert.Equal(previousFinallyCount + 1, Yields.FibonacciFinallyCount); }
/** * @brief 던전 종료 이벤트, 메시지 띄우고 타이틀 씬으로 */ private IEnumerator ExitEvent() { while (!Input.GetKeyDown(KeyCode.E)) { yield return(null); } NotifyMessageEvent.Instance.PrintMainText("포트폴리오는 여기까지 입니다.", 2); yield return(Yields.WaitSeconds(2f)); NotifyMessageEvent.Instance.PrintMainText("감사합니다.", 2); yield return(Yields.WaitSeconds(3f)); SceneControlManager.Instance.LoadScene("Title"); }
IEnumerator PurchaseItem(string code, int count) { Future <bool> future; bool result; future = this._itemService.PurchaseItemByCode(code, count); yield return(this.StartCoroutine(future.Poll())); if (!future.IsDone) { yield break; } result = future.Get(); yield return(Yields.WaitForNextFrame()); // }
public void ExecuteUsingDisposalWhenEnumeratorDisposed() { #region explicit dispose var previousDisposedCount = DisposableThing.DisposedCount; var enumerator = Yields.GetRandomNumbers().GetEnumerator(); // make something happen enumerator.MoveNext(); enumerator.MoveNext(); enumerator.Dispose(); Assert.Equal(previousDisposedCount + 1, DisposableThing.DisposedCount); #endregion #region previousDisposedCount = DisposableThing.DisposedCount; // using using (var randomEnumerator = Yields.GetRandomNumbers().GetEnumerator()) { for (int i = 0; i < 10; ++i) { randomEnumerator.MoveNext(); Console.WriteLine(randomEnumerator.Current); } } Assert.Equal(previousDisposedCount + 1, DisposableThing.DisposedCount); #endregion #region //previousDisposedCount = DisposableThing.DisposedCount; //// foreach //foreach (var rand in Yields.GetFibonacciNumbers()) //{ // if (rand < 10000) // break; //} //Assert.Equal(previousDisposedCount + 1, DisposableThing.DisposedCount); #endregion }
// Use this for initialization IEnumerator Start() { //FIrst Event : 첫번째 이벤트 카메라를 셋팅하고 게이트를 연다. //Event가 끝나면 Second Event 시작 eventCamOne.SetActive(true); yield return(Yields.WaitSeconds(2.0f)); psGate.Play(); iTween.ValueTo(this.gameObject, iTween.Hash("from", 0.1f, "to", 1f, "time", 1.5f, "onupdatetarget", this.gameObject, "onupdate", "UpdateGateRadius", "oncompletetarget", this.gameObject, "oncomplete", "SecondEvent", "easetype", iTween.EaseType.linear)); }
private IEnumerator Start() { //몬스터가 죽으면 루틴 해제 while (true) { if (health != null) { if (health.IsDeath) { break; } } if (player.State != PlayerInfo.PlayerState.DEATH) { Attack(); } yield return(Yields.WaitSeconds(timeBetweenAttacks)); } }
private IEnumerator Shooter() { while (true) { yield return(Yields.WaitSeconds(0.5f)); int idx = Random.Range(1, itemList.Count); var rigid = Instantiate(itemList[idx], transform.position, Quaternion.identity). GetComponent <Rigidbody>(); rigid.mass = 1f; var pos = Vector3.zero; pos.x += Random.Range(-3.0f, +3.0f); pos.z += Random.Range(-3.0f, +3.0f); pos.y += 4.0f; rigid.AddForce(pos * 80f); } }
/** * @brief UI를 MainCamera 방향으로 회전 하여 보여준다. */ IEnumerator PrintObjInfo() { var tfCam = Camera.main.transform; var info = PlayerInfo.Instance; while (true) { yield return(Yields.WaitSeconds(0.1f)); var pos = info.transform.position; if (Vector3.Distance(transform.position, pos) > dist) { infoText.gameObject.SetActive(false); continue; } infoText.gameObject.SetActive(true); transform.LookAt(tfCam.position); var euler = transform.localEulerAngles; transform.localRotation = Quaternion.Euler(0, euler.y, 0); } }
/** * @brief Start Room7 Event * @detail First Event : 주변 오브젝트를 붕괴시키고 플레이어를 복셀화 * Second Event : 바닥 흔들림 * Third Event : 바닥 붕괴 및 플레이어 낙하에 따른 카메라 이벤트 */ IEnumerator PlayRoom7Event() { //=================== Start First Event =======================// //Play Release Particle and Disable Object ps.Play(); foreach (var obj in disableObjects) { obj.SetActive(false); } //disable Trigger trigger.enabled = false; //Rebuild Player PlayerAnimation.Instance.Reconstruction(); yield return(Yields.WaitSeconds(4f)); //=================== End Firset Event =======================// //=================== Start Second Event =======================// //Shake Floor float t = 0f; while (t < 6f) { t += Time.deltaTime; foreach (var rigid in floorObject) { var height = scaleModifier * Mathf.PerlinNoise(Time.time + rigid.position.x * scale, Time.time + rigid.position.z * scale); Vector3 pos = rigid.transform.position; pos.y = height + offsetHeight; rigid.transform.position = pos; } yield return(new WaitForEndOfFrame()); } //=================== End SecondEvent =======================// //=================== Start ThirtEvent =======================// //Destory Floor foreach (var rigid in floorObject) { rigid.isKinematic = false; rigid.useGravity = true; } PlayerInfo.Instance.Anim.Play("Fall_Second"); eventCamFirst.SetActive(true); yield return(Yields.WaitSeconds(2.5f)); PlayerInfo.Instance.Rigid.isKinematic = true; PlayerInfo.Instance.IsLock = true; yield return(Yields.WaitSeconds(1.0f)); eventCamSecond.SetActive(true); yield return(Yields.WaitSeconds(1.0f)); yield return(ParticleManager.Reverse(cubeParticle, 1f)); cubeObj.SetActive(true); yield return(Yields.WaitSeconds(0.5f)); cubeObj.SetActive(false); yield return(ParticleManager.Play(cubeParticle)); eventCamThird.SetActive(true); gateObj.SetActive(true); iTween.MoveAdd(gateObj, iTween.Hash("z", 1, "time", 3, "easetype", iTween.EaseType.linear)); yield return(Yields.WaitSeconds(2.5f)); //=================== End ThirtEvent =======================// SceneControlManager.Instance.NextScene(); }
/** @brief text ui disable @param hitText : text ui, time : waiting time */ IEnumerator DisableHitText(GameObject hitText, float time) { yield return Yields.WaitSeconds(time); hitText.SetActive(false); }
public YieldsTests() { _object = new Yields(); }