MiniGames/Assets/ZibuSlotMachine2/Scripts/ZibuScrollInitializer.cs
2025-07-22 01:18:44 +05:00

41 lines
1.3 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using DanielLochner.Assets.SimpleScrollSnap;
public class ZibuScrollInitializer : MonoBehaviour
{
public List<Sprite> availableSprites; // Provide 5 options per scroll type
public List<string> zibuIds; // Must match sprite order (e.g., "Zibu_0", "Zibu_1", ...)
private SimpleScrollSnap scrollSnap;
void Start()
{
scrollSnap = GetComponent<SimpleScrollSnap>();
RandomizeScroll();
}
void RandomizeScroll()
{
// Shuffle the sprite/id list using Fisher-Yates
for (int i = 0; i < availableSprites.Count; i++)
{
int rand = Random.Range(i, availableSprites.Count);
(availableSprites[i], availableSprites[rand]) = (availableSprites[rand], availableSprites[i]);
(zibuIds[i], zibuIds[rand]) = (zibuIds[rand], zibuIds[i]);
}
for (int i = 0; i < scrollSnap.Content.childCount; i++)
{
Transform child = scrollSnap.Content.GetChild(i);
ZibuPiece piece = child.GetComponent<ZibuPiece>();
if (piece != null)
{
piece.image.sprite = availableSprites[i % availableSprites.Count];
piece.zibuId = zibuIds[i % zibuIds.Count];
}
}
}
}