フェンス2つ以上くり抜き対応
This commit is contained in:
parent
3b9948ffa4
commit
d9b301cd6b
|
|
@ -37,7 +37,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
bg.GetComponent<BackGround>()?.ResetFence();
|
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]);
|
SetFence(fencePosList[0]);
|
||||||
fencePosList.RemoveAt(0);
|
fencePosList.RemoveAt(0);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace MyGame.Scenes.MiniGame.Scripts
|
namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
|
|
@ -10,6 +12,22 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
[SerializeField] private float fenceStep = 1.47f;
|
[SerializeField] private float fenceStep = 1.47f;
|
||||||
[SerializeField] private Transform fenceMask;
|
[SerializeField] private Transform fenceMask;
|
||||||
[SerializeField] private float maskOffset = .6f;
|
[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)
|
public void SetSky(ScrollGameDifficulty difficulty)
|
||||||
{
|
{
|
||||||
|
|
@ -36,14 +54,18 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
|
|
||||||
public void SetFence(float xPos)
|
public void SetFence(float xPos)
|
||||||
{
|
{
|
||||||
fenceMask.gameObject.SetActive(true);
|
|
||||||
var fenceRight = fence.transform.position.x + fence.size.x / 2;
|
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()
|
public void ResetFence()
|
||||||
{
|
{
|
||||||
fenceMask.gameObject.SetActive(false);
|
foreach (var fm in fenceMaskList)
|
||||||
|
{
|
||||||
|
fm.SetLocalScale(0f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue