public void Collect(NoteCollectArgs args) { _shine.SetActive(true); _shineMaterial.SetColor("EColor", args.Color); //_shineMaterial.SetFloat("Intensity", 1); StartCoroutine(ShineDispose(args.CollectionTime)); }
public void CollectNote(NoteCollectArgs args) { var accuracy = args.Accuracy; var scoreArgs = new ScoreEarnedArgs(); if (accuracy >= 0.7f) { scoreArgs.Rate = ScoreRate.Poor; _currentMultiplier = 1; } else if (accuracy >= 0.45f && accuracy < 0.7f) { scoreArgs.Rate = ScoreRate.Good; _currentMultiplier = 1; } else if (accuracy > 0 && accuracy < 0.45f) { scoreArgs.Rate = ScoreRate.Perfect; if (_currentMultiplier != _scoreData.maxMultiplier) { _currentMultiplier++; } } else { return; } scoreArgs.CurrentIncome = _scoreData.noteScore * _currentMultiplier; _totalScore += scoreArgs.CurrentIncome; scoreArgs.Total = _totalScore; scoreArgs.Multiplier = _currentMultiplier; scoreArgs.ScorePosition = args.Collectable.transform.position; EventBus.RaiseEvent <IScoreEarnedHandler>(x => x.ProcessScoreData(scoreArgs)); }
private void OnTriggerEnter(Collider other) { var args = new NoteCollectArgs() { Accuracy = -1, Collectable = other.GetComponent <ICollectable>(), }; EventBus.RaiseEvent <INoteCollectedHandler>(x => x.CollectNote(args)); }
public void CollectNote(NoteCollectArgs args) { if (args.Accuracy < 0) { RestoreNote((Block)args.Collectable); return; } args.CollectionTime = _blockData.CollectTime; args.Collectable.Collect(args); var block = (Block)args.Collectable; RestoreNote(block); }
private void OnTriggerEnter(Collider other) { var block = other.GetComponent <IPlayer>(); NoteCollectArgs args = new NoteCollectArgs() { Collectable = this, }; if (block == null) { args.Accuracy = -1; } else { var accuracy = Mathf.Abs(other.transform.position.z - transform.position.z); args.Color = _renderer.material.GetColor("EColor"); args.Accuracy = accuracy; } EventBus.RaiseEvent <INoteCollectedHandler>(x => x.CollectNote(args)); }