private void Release(object sender, object args) { _currentWorkbench = null; _character.Mover.Enable(); _character.Animator.SetTrigger("StopRepair"); }
private void Repair(object sender, object args) { RaycastHit hit; // Does the ray intersect any objects excluding the player layer if (Physics.Raycast(transform.position, transform.forward, out hit, _raycastDistance, LayerMask.GetMask("Workbench"))) { var workbench = hit.collider.GetComponent <C_Workbench>(); if (workbench) { _character.Animator.SetTrigger("StartRepair"); _character.Mover.Disable(); workbench.OnRepair(this.gameObject); _currentWorkbench = workbench; if (workbench.GetWorkbenchType() == ObjectType.LEFT_ARM || workbench.GetWorkbenchType() == ObjectType.RIGHT_ARM) { SoundManager.PlaySound(SoundList.Sound.workbenchturn, this.gameObject, false); } else { SoundManager.PlaySound(SoundList.Sound.workbenchtap, this.gameObject, false); } } } }
private void OnTriggerExit(Collider other) { CurrentWorkbench = null; }
private void OnTriggerEnter(Collider other) { CurrentWorkbench = other.GetComponent <C_Workbench>(); }