フェンス2つ以上くり抜き対応

This commit is contained in:
kimura 2022-07-29 16:08:35 +09:00
parent 3b9948ffa4
commit d9b301cd6b
2 changed files with 26 additions and 4 deletions

View File

@ -37,7 +37,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
bg.GetComponent<BackGround>()?.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);

View File

@ -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<Transform> 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);
}
}
}
}