フェンス2つ以上くり抜き対応
This commit is contained in:
parent
3b9948ffa4
commit
d9b301cd6b
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue