From d152b81aecf9dbdb6015f0a9967b893b7cac0f9e Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 1 Jul 2022 12:35:25 +0900 Subject: [PATCH] =?UTF-8?q?=E8=BB=A2=E3=82=93=E3=81=A0=E3=81=A8=E3=81=8D?= =?UTF-8?q?=E3=81=AE=E3=82=A2=E3=82=A4=E3=83=86=E3=83=A0=E7=8D=B2=E5=BE=97?= =?UTF-8?q?=E5=88=A4=E5=AE=9A=E3=82=92=E7=84=A1=E5=8A=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/MiniGame/Scripts/GameManager.cs | 6 ++++ .../MyGame/Scenes/MiniGame/Scripts/Player.cs | 25 ++++++++-------- .../Scenes/MiniGame/Scripts/StageItem.cs | 30 ++++++++----------- 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs index 6600aee5..a3317911 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs @@ -256,9 +256,15 @@ namespace MyGame.Scenes.MiniGame.Scripts } #endif x.enabled = false; + + if (player.IsHit) + { + return; + } switch (item.ItemType) { case StageItem.Type.Item1: + item.Effect(); scoreCount.Value += item.Point; player.AddCount(); break; diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs index 68cb09b6..2fbf7291 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs @@ -18,8 +18,9 @@ namespace MyGame.Scenes.MiniGame.Scripts [SerializeField] private GameObject level3; private Animator animator; private bool isJump; - private bool isPreHit; - private readonly BoolReactiveProperty isHit = new BoolReactiveProperty(); + private bool isHit; + public bool IsHit => isHit; + private readonly BoolReactiveProperty isHitStay = new BoolReactiveProperty(); private IDisposable hitDisposable; private Coroutine jumpCoroutine; private Vector3 basePos; @@ -27,14 +28,14 @@ namespace MyGame.Scenes.MiniGame.Scripts private void Start() { - isHit.AddTo(this); + isHitStay.AddTo(this); animator = GetComponent(); basePos = transform.localPosition; } public void Stay(bool force = false) { - if (!force && isPreHit) + if (!force && isHit) { return; } @@ -43,12 +44,12 @@ namespace MyGame.Scenes.MiniGame.Scripts public void Move() { - if (isHit.Value) + if (isHitStay.Value) { return; } transform.AddPositionX(speed * Time.deltaTime); - if (isJump || isPreHit) + if (isJump || isHit) { return; } @@ -57,7 +58,7 @@ namespace MyGame.Scenes.MiniGame.Scripts public void Jump() { - if (isJump || isPreHit) + if (isJump || isHit) { return; } @@ -79,13 +80,13 @@ namespace MyGame.Scenes.MiniGame.Scripts // こける public void Hit() { - if (isPreHit) + if (isHit) { return; } SoundManager.Instance.PlaySE("se_minigame_Collide"); animator?.Play("Brother_pink_FallDown"); - isPreHit = true; + isHit = true; hitDisposable?.Dispose(); this.SafeStopCoroutine(jumpCoroutine); @@ -101,11 +102,11 @@ namespace MyGame.Scenes.MiniGame.Scripts { }, () => { - isHit.Value = true; + isHitStay.Value = true; this.CallWaitForSeconds(hitWaitTime, () => { - isPreHit = false; - isHit.Value = false; + isHit = false; + isHitStay.Value = false; Stay(); }); }); diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageItem.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageItem.cs index 1b6990b6..fdf2a92b 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageItem.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/StageItem.cs @@ -20,24 +20,20 @@ namespace MyGame.Scenes.MiniGame.Scripts public int Point => point; - private void Start() + public void Effect() { - this.OnTriggerEnter2DAsObservable() - .Subscribe(_ => - { - // effect - switch (itemType) - { - case Type.Item1: - transform.SetLocalScale(0f); - if (effect != null) effect.SetActive(true); - break; - case Type.Obstacle: - break; - default: - throw new ArgumentOutOfRangeException(); - } - }).AddTo(this); + // effect + switch (itemType) + { + case Type.Item1: + transform.SetLocalScale(0f); + if (effect != null) effect.SetActive(true); + break; + case Type.Obstacle: + break; + default: + throw new ArgumentOutOfRangeException(); + } } public void ResetItem()