Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- public class PhaseManager : MonoBehaviour
- {
- public OsuInput os;
- public OsuInput.OsuInputStruct[] osuInputs;
- OsuInput curOsu;
- Transform phCursor;
- public Phase[] phases;
- int curPhase;
- void Start()
- {
- curPhase = 0;
- phCursor = transform.GetChild(0).transform;
- StartCoroutine(GenerateOsu(phases[curPhase]));
- }
- void Update()
- {
- if(phases[curPhase].osuInputs[phases[curPhase].numberOfInputs-1].stopped)
- curPhase++;
- }
- IEnumerator GenerateOsu(Phase ph)
- {
- while (curPhase < phases.Length)
- {
- for (int i = 0; i < phases[curPhase].numberOfInputs; i++)
- {
- OsuInput osu = (OsuInput)Instantiate(os, phases[curPhase].inputPositions[i], Quaternion.identity);
- phases[curPhase].osuInputs[curPhase] = osu;
- phases[curPhase].osuInputs[curPhase].osuData = osuInputs[Random.Range(0, osuInputs.Length)];
- osu.transform.SetParent(transform);
- yield return new WaitForSeconds(.2f);
- }
- StartCoroutine(ActivateOsu(phases[curPhase]));
- }
- }
- private IEnumerator ActivateOsu(Phase ph)
- {
- yield return new WaitForSeconds(2f);
- for (int i = 0; i < ph.numberOfInputs; i++)
- {
- phases[curPhase].osuInputs[i].active = true;
- yield return new WaitForSeconds(phases[curPhase].osuDuration);
- }
- }
- }
- [System.Serializable]
- public class Phase
- {
- public int numberOfInputs;
- public Vector3[] inputPositions;
- public float osuDuration;
- public OsuInput[] osuInputs;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement