Advertisement
Guest User

osu! C#

a guest
Apr 24th, 2016
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.78 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class PhaseManager : MonoBehaviour
  5.     {
  6.     public OsuInput os;
  7.     public OsuInput.OsuInputStruct[] osuInputs;
  8.     OsuInput curOsu;
  9.     Transform phCursor;
  10.     public Phase[] phases;
  11.     int curPhase;
  12.  
  13.     void Start()
  14.         {
  15.         curPhase = 0;
  16.         phCursor = transform.GetChild(0).transform;
  17.         StartCoroutine(GenerateOsu(phases[curPhase]));
  18.         }
  19.  
  20.     void Update()
  21.         {
  22.      if(phases[curPhase].osuInputs[phases[curPhase].numberOfInputs-1].stopped)
  23.             curPhase++;
  24.         }
  25.  
  26.     IEnumerator GenerateOsu(Phase ph)
  27.         {
  28.         while (curPhase < phases.Length)
  29.             {
  30.             for (int i = 0; i < phases[curPhase].numberOfInputs; i++)
  31.                 {
  32.  
  33.                 OsuInput osu = (OsuInput)Instantiate(os, phases[curPhase].inputPositions[i], Quaternion.identity);
  34.                 phases[curPhase].osuInputs[curPhase] = osu;
  35.                 phases[curPhase].osuInputs[curPhase].osuData = osuInputs[Random.Range(0, osuInputs.Length)];
  36.                 osu.transform.SetParent(transform);
  37.                 yield return new WaitForSeconds(.2f);
  38.                 }
  39.             StartCoroutine(ActivateOsu(phases[curPhase]));
  40.             }
  41.         }
  42.  
  43.     private IEnumerator ActivateOsu(Phase ph)
  44.         {
  45.         yield return new WaitForSeconds(2f);
  46.         for (int i = 0; i < ph.numberOfInputs; i++)
  47.             {
  48.             phases[curPhase].osuInputs[i].active = true;
  49.             yield return new WaitForSeconds(phases[curPhase].osuDuration);
  50.             }
  51.         }
  52.     }
  53.  
  54. [System.Serializable]
  55. public class Phase
  56.     {
  57.     public int numberOfInputs;
  58.     public Vector3[] inputPositions;
  59.     public float osuDuration;
  60.     public OsuInput[] osuInputs;
  61.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement