コード例 #1
0
 private void OnEventProviderEnabled(RhythmEventProvider r)
 {
     if (songLoaded)
     {
         InitializeEventProvider(r);
     }
 }
コード例 #2
0
    void Start()
    {
        SongStarted = false;
        SS          = FindObjectOfType <SongSelect>();
        song        = SS.Selectedsong;

        hit1           = GameObject.FindGameObjectWithTag("p1");
        hit2           = GameObject.FindGameObjectWithTag("p2");
        hit3           = GameObject.FindGameObjectWithTag("p3");
        SpritePosition = GameObject.FindGameObjectWithTag("Sprite");

        rhythmtool = GetComponent <RhythmTool>();
        REP        = GetComponent <RhythmEventProvider>();

        rhythmtool.NewSong(song);
        rhythmtool.SongLoaded += OnSongLoaded;

        REP.onSubBeat.AddListener(OnSubBeat);

        combo = 0;
        score = 0;

        LHeld = false;
        MHeld = false;
        RHeld = false;

        TotalFrames = rhythmtool.totalFrames;
    }
コード例 #3
0
    public override void OnInspectorGUI()
    {
        RhythmEventProvider eventProvider = (RhythmEventProvider)target;

        serializedObject.Update();

        EditorGUI.BeginChangeCheck();

        SerializedProperty _target = serializedObject.FindProperty("_target");

        EditorGUILayout.PropertyField(_target);

        if (EditorGUI.EndChangeCheck())
        {
            eventProvider.target = (RhythmTool)_target.objectReferenceValue;
        }

        if (eventProvider.offset > 0)
        {
            EditorGUILayout.LabelField("Current Frame:", (eventProvider.currentFrame) + "+" + eventProvider.offset);
        }
        else
        {
            EditorGUILayout.LabelField("Current Frame:", eventProvider.currentFrame.ToString());
        }

        SerializedProperty _targetOffset = serializedObject.FindProperty("_targetOffset");

        EditorGUILayout.IntSlider(_targetOffset, 0, eventProvider.maxOffset);

        serializedObject.ApplyModifiedProperties();

        EditorUtility.SetDirty(eventProvider);
    }
コード例 #4
0
    private void InitializeEventProvider(RhythmEventProvider r)
    {
        r.offset = 0;

        if (audioSource != null)
        {
            r.onNewSong.Invoke(audioSource.clip.name, totalFrames);
        }

        r.totalFrames = totalFrames;
    }
コード例 #5
0
    void Start()
    {
        rhythmtool = GetComponent <RhythmTool>();
        events     = GetComponent <RhythmEventProvider>();
        wspawn     = FindObjectOfType <Weapon>();


        rhythmtool.NewSong(Theme);
        rhythmtool.SongLoaded += OnSongLoaded;

        events.onSubBeat.AddListener(OnSubBeat);
    }
コード例 #6
0
    private void PassEvents(RhythmEventProvider r, int index)
    {
        r.onFrameChanged.Invoke(index, lastFrame);

        if (r.onOnset.listenerCount != 0)
        {
            Onset l = _low.GetOnset(index);
            Onset m = _mid.GetOnset(index);
            Onset h = _high.GetOnset(index);
            Onset a = _all.GetOnset(index);

            if (l > 0)
            {
                r.onOnset.Invoke(OnsetType.Low, l);
            }
            if (m > 0)
            {
                r.onOnset.Invoke(OnsetType.Mid, m);
            }
            if (h > 0)
            {
                r.onOnset.Invoke(OnsetType.High, h);
            }
            if (a > 0)
            {
                r.onOnset.Invoke(OnsetType.All, a);
            }
        }

        if (r.onBeat.listenerCount != 0)
        {
            if (IsBeat(index) == 1)
            {
                Beat beat = NextBeat(index);
                r.onBeat.Invoke(beat);
            }
        }

        if (r.onChange.listenerCount != 0)
        {
            if (IsChange(index))
            {
                r.onChange.Invoke(index, NextChange(index));
            }
        }
    }
コード例 #7
0
    private void PassSubBeat(RhythmEventProvider r, float index)
    {
        float beatTime = BeatTimer(index);
        Beat  prevBeat = PrevBeat(Mathf.CeilToInt(index));

        if (r.lastBeatTime > beatTime)
        {
            r.onSubBeat.Invoke(prevBeat, 0);
        }
        if (r.lastBeatTime < .5f && beatTime >= .5f)
        {
            r.onSubBeat.Invoke(prevBeat, 2);
        }
        if (r.lastBeatTime < .25f && beatTime >= .25f)
        {
            r.onSubBeat.Invoke(prevBeat, 1);
        }
        if (r.lastBeatTime < .75f && beatTime >= .75f)
        {
            r.onSubBeat.Invoke(prevBeat, 3);
        }

        r.lastBeatTime = beatTime;
    }