41 lines
1.3 KiB
C#
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];
|
|
}
|
|
}
|
|
}
|
|
}
|