private void Update() { if (!Input.GetButtonDown("Fire1") || _guiManager.GetCurrentGuiScreen() != GuiScreen.None) { return; } if (!_gunProjectileSpawn) { Debug.LogError("Gun Projectile Span no set!"); return; } _gunProjectileSpawn.Fire(); }
private void Shoot() { RaycastHit hit; if (_livingEntity && (!NavMeshAgent.hasPath && Vector3.Distance(transform.position, TargetTransform.position) <= MeleeDamage || NavMeshAgent.remainingDistance <= MeleeDistance)) { _livingEntity.Damage(MeleeDamage); } else if (_gunProjectileSpawn && NavMeshAgent.remainingDistance <= AttackDistance && Vector3.Angle(TargetTransform.position - _headTransform.position, _headTransform.forward) <= FoV && Physics.Linecast(_headTransform.position, TargetTransform.position, out hit) && hit.transform == TargetTransform) { _gunProjectileSpawn.Fire(); } }