예제 #1
0
    void Update()
    {
        var t = (Data.Time - sound.Time);

        // 位置を移動
        var rate           = t / NoteManager.DisplayTime; // 出現した瞬間が1、ちょうど押すタイミングで0になる
        var targetPosition = hitPositions[Data.Position].position;

        transform.localPosition = new Vector3(
            targetPosition.x,
            Mathf.Lerp(targetPosition.y, StartPositionY, rate),
            0
            );

        if (t < -NoteManager.MissTime)
        {
            manager.Evaluate(this, false);
        }

        #if オートプレイ
        if (sound.Time > Data.Time)
        {
            sound.PlaySE();
            Destroy(gameObject);
        }
        #endif
    }
예제 #2
0
    private void CalcNote()
    {
        this.UpdateAsObservable()
        .Subscribe(_ =>
        {
            var t    = (Data.Time - soundManager.Time);
            var rate = t / NoteManager.DisplayTime;

            line.transform.localPosition = new Vector3(
                0,
                0,
                Mathf.Lerp(76, 0, rate)
                );

            if (t < -NoteManager.MissTime)
            {
                noteManager.Evaluate(this, Const.DecisionResult.Miss);
            }
        });
    }