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 }
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); } }); }