コード例 #1
0
    public override void Fire()
    {
        if (m_bCanFire && m_iAmmunition > 0)
        {
            // Get the fire direction so spawning is at the correct initial rotation
            Vector3 vTraj  = transform.position - (transform.position + m_vSpawnPosition);
            float   fAngle = (Mathf.Atan2(vTraj.y, vTraj.x) * Mathf.Rad2Deg) + 90f;

            // Spawn the Missile
            Instantiate(m_BulletPrefab, (transform.position + m_vSpawnPosition), Quaternion.AngleAxis(fAngle, Vector3.forward));
            GameInstance.Object.GetAudioManager().PlayAudioAtLocation(transform.position, EGameSFX._SFX_MISSLE_TAKEOFF);
            --m_iAmmunition;

            // Set a timer for the next shot...
            m_iTimerHandle = TimerManager.AddTimer(m_fFiringPauseSeconds, Fire);

            // Null check belt and braces, Fire can be called before OnRoomEnter if m_fInitialFireDelay is too small
            if (null != m_gcAnimator)
            {
                m_gcAnimator.FlickAnim();
            }
        }
    }
コード例 #2
0
 public override void Fire()
 {
     base.Fire();
     m_gcAnimator.FlickAnim();
 }