Beispiel #1
0
    private void CheckMiss()
    {
        //処理中でない状態で視点が判定ラインを通過し、
        //Badの判定幅よりも離れるとノーツを削除
        if (!isProcessed && noteProperty.secBegin - PlayerControllers.CurrentSec < -JudgementManager.JudgementWidth[JudgementType.Bad])
        {
            //TODOミス処理(二回呼び出す)
            EvaluationManager.OnMiss(); //始点の分
            EvaluationManager.OnMiss(); //終点の分

            //リストから削除
            PlayerControllers.ExistingNoteControllers.Remove(
                GetComponent <NoteControllerBase>()
                );
            //GameObject自体も削除
            Destroy(gameObject);
        }

        // 処理中の状態で終点が判定ラインを通過し、
        // BaDの判定幅よりも離れるとノーツを削除
        if (isProcessed && noteProperty.secEnd - PlayerControllers.CurrentSec < -JudgementManager.JudgementWidth[JudgementType.Bad])
        {
            //TODO ミス処理
            EvaluationManager.OnMiss();

            //処理中フラグを解除
            isProcessed = false;
            //リストから削除
            PlayerControllers.ExistingNoteControllers.Remove(
                GetComponent <NoteControllerBase>()
                );
            // GameObjectを削除
            Destroy(gameObject);
        }
    }
Beispiel #2
0
    //キーが離された時
    public override void OnKeyUp(JudgementType judgementType)
    {
        //TODO 判定がBad以内の時
        if (judgementType != JudgementType.Miss)
        {
            //ヒット処理
            EvaluationManager.OnHit(judgementType);
        }
        //判定がmissのとき
        else
        {
            //ミス処理
            EvaluationManager.OnMiss();
        }



        //コンソールに判定を表示
        Debug.Log(judgementType);
        // 効果音再生
        AudioSource.PlayClipAtPoint(clipHit, transform.position);
        // 処理中フラグを解除
        isProcessed = false;
        //リストから削除
        PlayerControllers.ExistingNoteControllers.Remove(
            GetComponent <NoteControllerBase>()
            );
        //gameObjectも削除
        Destroy(gameObject);
    }
    private void OnReleased(object sender, EventArgs e)
    {
        // 最近傍のノーツを処理すべきタイミング(sec)
        var noteSec = noteProperty.secEnd;
        // 処理すべきタイミングと
        // 実際にキーが押されたタイミングの差の絶対値
        var differenceSec = Mathf.Abs(noteSec - PlayerController.CurrentSec);
        // 最近傍のノーツのOnKeyUpを呼び出し
        var judgementType = JudgementManager.GetJudgementType(differenceSec);

        // 判定がBad以内のとき
        if (judgementType != JudgementType.Miss)
        {
            // ヒット処理
            EvaluationManager.OnHit(judgementType);
        }
        // 判定がMissの時(MISS)
        else
        {
            // ミス処理
            EvaluationManager.OnMiss();
        }
        // コンソールに判定を表示
        Debug.Log(judgementType);
        // 効果音再生
        AudioSource.PlayClipAtPoint(clipHit, transform.position);
        // 処理中フラグを解除
        isProcessed = false;
        //リストから削除
        PlayerController.ExistingNoteControllers.Remove(
            GetComponent <NoteControllerBase>()
            );
        // GameObject自体も削除
        Destroy(gameObject);
    }
 // 見逃し検出
 private void CheckMiss()
 {
     // 判定ラインを通過した後、BADの判定幅よりも離れるとノーツを削除
     if (noteProperty.secBegin - PlayerController.CurrentSec <
         -JudgementManager.JudgementWidth[JudgementType.Bad])
     {
         // ミス処理
         EvaluationManager.OnMiss();
         // 未処理ノーツ一覧から削除
         PlayerController.ExistingNoteControllers.Remove(
             GetComponent <NoteControllerBase>()
             );
         // GameObject自体も削除
         Destroy(gameObject);
     }
 }