protected override void OnUpdate() { Entities .WithoutBurst() .WithStructuralChanges() .ForEach((Entity entity, SpriteRenderer renderer, ref HitComponent hitComp, ref AnimationFrameComponent animComp) => { if (false == AnimUtility.HasState(animComp, AnimUtility.hit)) { animComp.state |= AnimUtility.hit; renderer.color = hitComp.hitEffectColor; GamePause.Pause(0.15f); } hitComp.elapsedTime += Time.DeltaTime; if ((hitComp.elapsedTime >= hitComp.hitEffectTime) && (renderer.color == hitComp.hitEffectColor)) { renderer.color = Color.white; } else if (hitComp.elapsedTime >= hitComp.godTime) { animComp.state ^= AnimUtility.hit; EntityManager.RemoveComponent <HitComponent>(entity); EntityManager.RemoveComponent <MoveComponent>(entity); } }).Run(); }
IEnumerator PauseCoroutine() { GamePause gamePause = canvas.GetComponent <GamePause>(); gamePause.Pause(); narratorTrigger.Play(); Debug.Log(narratorTrigger.GetLength()); yield return(new WaitForSecondsRealtime(narratorTrigger.GetLength())); gamePause.Resume(); SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1); }