From d9b301cd6b6ed25df0bfcc5b3bc51a51dd45def0 Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 29 Jul 2022 16:08:35 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=95=E3=82=A7=E3=83=B3=E3=82=B9=EF=BC=92?= =?UTF-8?q?=E3=81=A4=E4=BB=A5=E4=B8=8A=E3=81=8F=E3=82=8A=E6=8A=9C=E3=81=8D?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/MiniGame/Scripts/BGManager.cs | 2 +- .../Scenes/MiniGame/Scripts/BackGround.cs | 28 +++++++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BGManager.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BGManager.cs index 2bb01e4e..622239c2 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BGManager.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BGManager.cs @@ -37,7 +37,7 @@ namespace MyGame.Scenes.MiniGame.Scripts bg.GetComponent()?.ResetFence(); } // フェンス確認 - if (fencePosList.Count > 0 && fencePosList[0] - targetXPos <= bgWidth) + if (fencePosList.Count > 0 && fencePosList[0] - targetXPos <= bgWidth * 1.5f) { SetFence(fencePosList[0]); fencePosList.RemoveAt(0); diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BackGround.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BackGround.cs index 05cfd567..e3e251ad 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BackGround.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/BackGround.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Linq; using UnityEngine; namespace MyGame.Scenes.MiniGame.Scripts @@ -10,6 +12,22 @@ namespace MyGame.Scenes.MiniGame.Scripts [SerializeField] private float fenceStep = 1.47f; [SerializeField] private Transform fenceMask; [SerializeField] private float maskOffset = .6f; + private readonly List fenceMaskList = new(); + private int fenceMaskCount = 3; + private int fenceMaskIndex; + private Vector3 cacheFenceScale; + + private void Start() + { + cacheFenceScale = fenceMask.localScale; + fenceMaskList.Clear(); + fenceMaskList.Add(fenceMask); + for (int i = 0; i < fenceMaskCount - 1; i++) + { + var newFenceMask = Instantiate(fenceMask, fenceMask.parent); + fenceMaskList.Add(newFenceMask); + } + } public void SetSky(ScrollGameDifficulty difficulty) { @@ -36,14 +54,18 @@ namespace MyGame.Scenes.MiniGame.Scripts public void SetFence(float xPos) { - fenceMask.gameObject.SetActive(true); var fenceRight = fence.transform.position.x + fence.size.x / 2; - fenceMask.SetPositionX(Mathf.CeilToInt((fenceRight - xPos) / fenceStep) * -fenceStep + fenceRight + maskOffset); + fenceMaskList[fenceMaskIndex].localScale = cacheFenceScale; + fenceMaskList[fenceMaskIndex].SetPositionX(Mathf.CeilToInt((fenceRight - xPos) / fenceStep) * -fenceStep + fenceRight + maskOffset); + fenceMaskIndex = (fenceMaskIndex + 1) % fenceMaskCount; } public void ResetFence() { - fenceMask.gameObject.SetActive(false); + foreach (var fm in fenceMaskList) + { + fm.SetLocalScale(0f); + } } } } \ No newline at end of file