コード例 #1
0
    protected void ShotBullet(UbhBullet bullet, IEnumerator bulletMoveRoutine)
    {
        if (bullet == null)
        {
            return;
        }

        bullet.Shot(bulletMoveRoutine);
    }
コード例 #2
0
ファイル: GlowwarmShot.cs プロジェクト: hdmmY/Shooter
        // Different from ShotBullet Method(in UbhBaseShot Class), it just care about bullet angle and speed
        private void ShotChildBullet(UbhBullet bullet, float speed, float angle)
        {
            if (bullet == null)
            {
                return;
            }

            bullet.Shot(speed, angle,
                        0, 0, false, null, 0, 0, false, 0, 0, false, 0, 0);
        }
コード例 #3
0
 /// <summary>
 /// Shot UbhBullet object.
 /// </summary>
 protected void ShotBullet(UbhBullet bullet, float speed, float angle,
                           bool homing = false, Transform homingTarget = null, float homingAngleSpeed = 0f, float maxHomingAngle = 0f,
                           bool wave   = false, float waveSpeed        = 0f, float waveRangeSize = 0f)
 {
     if (bullet == null)
     {
         return;
     }
     bullet.Shot(speed, angle, m_angleSpeed, m_accelerationSpeed,
                 homing, homingTarget, homingAngleSpeed, maxHomingAngle,
                 wave, waveSpeed, waveRangeSize,
                 m_usePauseAndResume, m_pauseTime, m_resumeTime);
 }
コード例 #4
0
 /// <summary>
 /// Shot UbhBullet object.
 /// </summary>
 protected void ShotBullet(UbhBullet bullet, float speed, float angle,
                           bool homing = false, Transform homingTarget = null, float homingAngleSpeed = 0f,
                           bool wave   = false, float waveSpeed        = 0f, float waveRangeSize = 0f)
 {
     if (bullet == null)
     {
         return;
     }
     bullet.Shot(speed, angle, _AccelerationSpeed, _AccelerationTurn,
                 homing, homingTarget, homingAngleSpeed,
                 wave, waveSpeed, waveRangeSize,
                 _UsePauseAndResume, _PauseTime, _ResumeTime,
                 ShotCtrl != null ? ShotCtrl._AxisMove : UbhUtil.AXIS.X_AND_Y);
 }
コード例 #5
0
ファイル: ShotPauseAction.cs プロジェクト: hdmmY/Shooter
    public override bool ExcuteAction(PlayerProperty playerProperty)
    {
        CurrentTimeFrame++;

        if (CurrentTimeFrame == 1)
        {
            var playerSpriteTrans = playerProperty.m_spriteReference.transform;
            playerSpriteTrans.rotation        = Quaternion.Euler(0, 0, m_playerLookAngle);
            playerProperty.transform.position = m_playerPosition;
        }

        if (CurrentTimeFrame == (m_actionTimeFrame / 2))
        {
            foreach (var bulletGameObject in m_bullets)
            {
                bulletGameObject.SetActive(true);

                UbhBullet bulletComponent = bulletGameObject.GetComponent <UbhBullet>();
                if (bulletComponent == null)
                {
                    bulletComponent = bulletGameObject.AddComponent <UbhBullet>();
                }

                bulletComponent.m_damage = m_bulletDamage;
                bulletComponent.Shot(m_bulletSpeed,
                                     UbhUtil.GetAngleFromTwoPosition(Vector3.zero, bulletGameObject.transform.up), // shot angle
                                     0, 0,
                                     false, null, 0, 0,
                                     false, 0, 0,
                                     false, 0, 0, true);
            }

            foreach (var bulletPathNode in m_bulletPathNodes)
            {
                UbhObjectPool.Instance.ReleaseGameObject(bulletPathNode);
            }

            return(false);
        }

        if (CurrentTimeFrame > m_actionTimeFrame)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
コード例 #6
0
 /// <summary>
 /// Shot UbhBullet object.
 /// </summary>
 protected void ShotBullet(UbhBullet bullet, float speed, float angle,
                           bool homing = false, Transform homingTarget = null, float homingAngleSpeed = 0f,
                           bool wave   = false, float waveSpeed        = 0f, float waveRangeSize = 0f)
 {
     if (bullet == null)
     {
         return;
     }
     bullet.Shot(this,
                 speed, angle, m_accelerationSpeed, m_accelerationTurn,
                 homing, homingTarget, homingAngleSpeed,
                 wave, waveSpeed, waveRangeSize,
                 m_usePauseAndResume, m_pauseTime, m_resumeTime,
                 m_useAutoRelease, m_autoReleaseTime,
                 m_shotCtrl.m_axisMove, m_shotCtrl.m_inheritAngle);
 }
コード例 #7
0
ファイル: PlayerShoot.cs プロジェクト: hdmmY/Shooter
    // Player wants to shot.
    void Shot()
    {
        // it is not enough time after the last shot, shot cancel
        if (_timer < _playerProperty.m_shootInterval)
        {
            return;
        }

        if (m_shootList == null || m_shootList.Count <= 0)
        {
            Debug.LogWarning("Cannot shot because ShotList is not set.");
            return;
        }

        for (int i = 0; i < m_shootList.Count; i++)
        {
            Vector3 shotStartPoint = m_shootList[i].position;
            Vector3 shotDirection  = m_shootList[i].up;
            float   angle          = UbhUtil.GetAngleFromTwoPosition(Vector3.zero, shotDirection);

            UbhBullet bullet = GetBullet(shotStartPoint, Quaternion.Euler(0, 0, angle));
            if (bullet == null)
            {
                break;
            }
            bullet.Shot(_playerProperty.m_bulletSpeed, angle,
                        0, 0,
                        false, null, 0, 0,
                        false, 0, 0,
                        false, 0, 0, false);
            bullet.m_damage = _playerProperty.m_bulletDamage;
        }

        // finish a shot, reset timer
        _timer = 0f;
    }