@@ -0,0 +1,299 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1765813920416762}
m_IsPrefabParent: 1
--- !u!1 &1140539942788370
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4217521867602556}
- component: {fileID: 33416124209523904}
- component: {fileID: 135340163863641640}
- component: {fileID: 23370892202737820}
m_Layer: 0
m_Name: End
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1346080931527484
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4118288807979008}
- component: {fileID: 33340263911923424}
- component: {fileID: 135379025432766472}
- component: {fileID: 23598502079513634}
m_Layer: 0
m_Name: Begin
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1765813920416762
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4903155996466896}
- component: {fileID: 114364408846152918}
m_Layer: 0
m_Name: NoteSpawner
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1983489464452792
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4364184097852808}
- component: {fileID: 33482621405149344}
- component: {fileID: 65205652446050120}
- component: {fileID: 23773455991919768}
m_Layer: 0
m_Name: Rod
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4118288807979008
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346080931527484}
m_LocalRotation: {x: -0.23502694, y: -0, z: -0, w: 0.97198886}
m_LocalPosition: {x: 0, y: 0.6703831, z: 1.2557033}
m_LocalScale: {x: 0.100769654, y: 0.09642015, z: 0.099211454}
m_Children: []
m_Father: {fileID: 4903155996466896}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4217521867602556
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1140539942788370}
m_LocalRotation: {x: -0.23502694, y: -0, z: -0, w: 0.97198886}
m_LocalPosition: {x: 0, y: -0.63860285, z: -1.2600741}
m_LocalScale: {x: 0.10077, y: 0.096420005, z: 0.099210024}
m_Children: []
m_Father: {fileID: 4903155996466896}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4364184097852808
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1983489464452792}
m_LocalRotation: {x: -0.23502694, y: -0, z: -0, w: 0.97198886}
m_LocalPosition: {x: 0.0015138388, y: -0.047263622, z: 0.022094369}
m_LocalScale: {x: 0.07569074, y: 0.05749559, z: 2.9026663}
m_Children: []
m_Father: {fileID: 4903155996466896}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: -27.186, y: 0, z: 0}
--- !u!4 &4903155996466896
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1765813920416762}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.388, y: 1.678, z: 1.2049056}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 4217521867602556}
- {fileID: 4364184097852808}
- {fileID: 4118288807979008}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &23370892202737820
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1140539942788370}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!23 &23598502079513634
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346080931527484}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!23 &23773455991919768
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1983489464452792}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!33 &33340263911923424
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346080931527484}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33416124209523904
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1140539942788370}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &33482621405149344
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1983489464452792}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!65 &65205652446050120
BoxCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1983489464452792}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &114364408846152918
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1765813920416762}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3201ec3b22d0f4b49b35672463185745, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!135 &135340163863641640
SphereCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1140539942788370}
m_Material: {fileID: 0}
m_IsTrigger: 1
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!135 &135379025432766472
SphereCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346080931527484}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
@@ -0,0 +1,19 @@
using System;

namespace AssemblyCSharp
{
public class Note
{
public int id;
public int offset;
public bool is_pressed;

public Note (int id, int offset, bool is_pressed)
{
this.id = id;
this.offset = offset;
this.is_pressed = is_pressed;
}
}
}

@@ -0,0 +1,91 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using AssemblyCSharp;

public class NoteDisplay : MonoBehaviour {

public GameObject[] note_spawns;
public GameObject note_object;

private NoteSpawner[] note_spawners;
private Track track;
private ArrayList track_note;

private bool playing = false;
private float startTime;
private int noteIdx;

public int journeyTime = 1000;

void Awake(){

}

// Use this for initialization
void Start () {

note_spawners = new NoteSpawner[note_spawns.Length];

for (int x = 0; x < note_spawns.Length; x++) {
note_spawners [x] = (NoteSpawner)note_spawns [x].GetComponent (typeof(NoteSpawner));
note_spawners [x].setJourneyTime (this.journeyTime);
note_spawners [x].setNoteObject (this.note_object);
}

Note note1 = new Note (0, 5000, true);
Note note2 = new Note (0, 7000, true);
Note note3 = new Note (0, 8000, true);
Note note4 = new Note (0, 10000, true);

ArrayList notelist = new ArrayList ();
notelist.Add (note1);
notelist.Add (note2);
notelist.Add (note3);
notelist.Add (note4);

Track testTrack = new Track ("abc", "Guitar", "hello", "whatever.jpg", "abc.mp3", 1000,
notelist);
this.setTrack (testTrack);
this.trackStart ();

}



// Update is called once per frame
void Update () {
if (playing) {
if (noteIdx >= track_note.Count) {
this.trackStop();
return;
}

float offsetTime = Time.realtimeSinceStartup * 1000 - startTime;

Note nextNote = (Note)track_note [noteIdx];

if (offsetTime > nextNote.offset) { // Time to play the next note
noteIdx ++;
note_spawners [nextNote.id].spawnNote ();
}
}
}
void setTrack(Track track){
this.track = track;
track_note = track.notes;
}

void trackStart(){
Debug.Assert (this.track != null);

startTime = Time.realtimeSinceStartup;
noteIdx = 0;
playing = true;
}

void trackStop(){
playing = false;
// @Todo: clear up unused assets
}
}
@@ -0,0 +1,16 @@
using System;
using UnityEngine;

namespace AssemblyCSharp
{
public class NoteObject: MonoBehaviour
{
void OnTriggerEnter(Collider col){
Debug.Log (col);
if (col.gameObject.name == "End") {
Destroy (gameObject);
}
}
}
}

@@ -0,0 +1,63 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using AssemblyCSharp;

public class NoteSpawner : MonoBehaviour {

private Vector3 note_start;
private Vector3 note_end;
private Vector3 travelPath;
private Vector3 travelDelta;
private GameObject note_object;

ArrayList spawned_notes;

private int note_journey_time = 2000;


void Awake(){
this.spawned_notes = new ArrayList ();
}
// Use this for initialization
void Start () {
note_start = transform.Find("Begin").position;
Debug.Log (note_start);
note_end = transform.Find("End").position;

travelPath = note_end - note_start;
Debug.Log (travelPath);
travelDelta = travelPath/ (note_journey_time/1000);
Debug.Log (travelDelta);

Debug.Log (note_start.ToString());
Debug.Log (note_end.ToString());
}

// Update is called once per frame
void Update () {

}

void FixedUpdate(){
}

public void setJourneyTime(int time){
this.note_journey_time = time;
}

public void setNoteObject(GameObject noteObject){
this.note_object = noteObject;
}

public void spawnNote(){
Debug.Log ("note spawned");
GameObject newNote = Instantiate (note_object, note_start, transform.rotation);
newNote.GetComponent<Rigidbody> ().velocity = travelDelta;
//spawned_notes.Add (newNote);


}


}
@@ -0,0 +1,32 @@
using System;
using System.Collections;
using System.Collections.Generic;
using AssemblyCSharp;


namespace AssemblyCSharp
{
public class Track
{
public String id;
public String instrument;
public String name;
public String thumbnail;
public String audio_file;
int length;
public ArrayList notes;

public Track (String id, String instrument, String name, String thumbnail, String audio_file,
int length, ArrayList notes)
{
this.id = id;
this.instrument = instrument;
this.name = name;
this.thumbnail = thumbnail;
this.audio_file = audio_file;
this.length = length;
this.notes = notes;
}
}
}