void ResetLastHitBlock() { if (_lastBlockHit != null) { _lastBlockHit.ResetBlock(); _lastBlockHit = null; } }
private void Awake() { //comboGameObject = GameObject.FindGameObjectWithTag("Combo"); playerball = GameObject.FindWithTag("PlayerBall"); comboText = comboGameObject.GetComponent <TextMeshProUGUI>(); bouncedBlock = GetComponent <DestructableBlock>(); cachedComboWindow = comboWindow; cachedComboTarget = ComboTarget; }
void TryDig() { RaycastHit hitInfo; if (Physics.Raycast(playerCamera.position, playerCamera.forward, out hitInfo, digRange, digMask)) { DestructableBlock db = hitInfo.transform.GetComponent <DestructableBlock>(); if (db != null) { _lastHit = hitInfo; // Same block if (db == _lastBlockHit) { _lastDigTime = Time.time; _lastBlockHit.DamageBlock(digDamage * Time.deltaTime); SendMessage("OnDigHit", hitInfo, SendMessageOptions.DontRequireReceiver); } // Different block else { ResetLastHitBlock(); _lastDigTime = Time.time; _lastBlockHit = db; _lastBlockHit.DamageBlock(digDamage * Time.deltaTime); SendMessage("OnDigHit", hitInfo, SendMessageOptions.DontRequireReceiver); } } // No block else { ResetLastHitBlock(); SendMessage("OnDigMiss", SendMessageOptions.DontRequireReceiver); } } }