コード例 #1
0
ファイル: PlayerActions.cs プロジェクト: cadenkesey/lilith
    /// <summary>
    /// Called when player presses the shoot key
    /// </summary>
    private void shootAction()
    {
        if (!_shooting)
        {
            _shooting = true;

            if (_weaponAnimate != null)
            {
                Vector3 newPos = new Vector3(_playerWeapon.transform.localPosition.x, _playerWeapon.transform.localPosition.y + _adjustWeapon, _playerWeapon.transform.localPosition.z - _adjustWeapon);
                _playerWeapon.transform.localPosition = newPos;
                _weaponAnimate.PlayFireAnim();
            }

            RaycastHit shootHit;
            if (Physics.Raycast(_playerCamera.transform.position, _playerCamera.transform.forward, out shootHit, _shootRange, _layerMask, QueryTriggerInteraction.Ignore))
            {
                Transform target = shootHit.transform;

                if (target.CompareTag("Enemy"))
                {
                    FairyHealth enemyHealth = target.GetComponent <FairyHealth>();

                    GameObject hit = Instantiate(enemyHealth.HitEffect, shootHit.point, Quaternion.Euler(transform.forward)) as GameObject;

                    if (enemyHealth != null)
                    {
                        enemyHealth.Hit();
                    }
                }
                else
                {
                    Debug.Log(target);

                    GameObject hit = Instantiate(_hitEffect, shootHit.point, Quaternion.Euler(transform.forward)) as GameObject;
                }
            }

            StartCoroutine(StopShoot(_shootSpeed));
        }
    }