using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; using DanielLochner.Assets.SimpleScrollSnap; public class ZibuScrollInitializer : MonoBehaviour { public List availableSprites; // Provide 5 options per scroll type public List zibuIds; // Must match sprite order (e.g., "Zibu_0", "Zibu_1", ...) private SimpleScrollSnap scrollSnap; void Start() { scrollSnap = GetComponent(); 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(); if (piece != null) { piece.image.sprite = availableSprites[i % availableSprites.Count]; piece.zibuId = zibuIds[i % zibuIds.Count]; } } } }