private bool TryToAddHeldNoteLevelElement(HeldNote heldNote, LevelElementType type) { LevelElementPlacement placement = LevelElementPlacement.CreateProlongedSynchro( type, heldNote.StartTime, heldNote.EndTime); return(TryToAddLevelElement(placement)); }
public void Init(HeldNote heldNote) { _meshFilter = GetComponent <MeshFilter>(); _meshFilter.mesh = heldNote.GenerateTrackMesh(10); transform.localScale = new Vector3(1, 1, (float)heldNote.Time.ApproachRateMultiplier); //scale mesh to approach rate (temp. solution) transform.localPosition = new Vector3(0, -0.005f, 0); //slightly below track points }
private void InitTrackMesh(HeldNote heldNote) { var noteMesh = Instantiate(TrackMeshPrefab); //new generic track mesh noteMesh.transform.parent = transform; //parent to us noteMesh.transform.localPosition = new Vector3(0, 0, 0); //mesh will hold further offsets _trackController = noteMesh.GetComponent <TrackMeshController>(); //store this component for later updates _trackController.Init(heldNote); //generate mesh }
private void TryToAddHeldNote(HeldNote heldNote) { List <LevelElementType> types = distributionManager.GetOrderedHeldNoteLevelElementTypes(); foreach (LevelElementType type in types) { if (TryToAddHeldNoteLevelElement(heldNote, type)) { break; } } }
public void OnMelody(Note note) { TryChangingSize(); HeldNote heldNote = note as HeldNote; if (heldNote != null) { if (heldNote.LoopIndex > 0) { ReverseRotation(); } if (musicManager.GetComponent <AudioSource>().pitch != 0) { TrySpinning(heldNote.HoldTime / musicManager.GetComponent <AudioSource>().pitch); } } }
private void ConvertBeatmapToArray() { if (beatmap != null) { notes.Clear(); string times = beatmap.text.Substring(beatmap.text.IndexOf("[HitObjects]")); string[] lines = times.Split('\n'); //intentionally skipping index zero and last index for (int i = 1; i < lines.Length - 1; i++) { string line = lines[i]; string[] splitLine = line.Split(','); float time = float.Parse(splitLine[2]) / 1000.0f + offset; float timeOfNext = float.MaxValue; if (i < lines.Length - 2) { timeOfNext = float.Parse(lines[i + 1].Split(',')[2]) / 1000.0f + offset; } bool isMajor = int.Parse(splitLine[3]) >= 5; bool isHeld = splitLine[3] == "2" || splitLine[3] == "6"; if (!isHeld) { notes.Add(new Note(time, timeOfNext, isMajor)); } else { float length = float.Parse(splitLine[7]) * HeldNoteTimeMultiplier / 1000.0f; int numberOfLoops = int.Parse(splitLine[6]); for (int ind = 0; ind < numberOfLoops; ind++) { HeldNote noteToAdd = new HeldNote(time, timeOfNext, length, numberOfLoops, ind, isMajor); notes.Add(noteToAdd); } } } } }