Пример #1
0
    /// <summary>
    /// Finished Shot
    /// </summary>
    public void OnFinishedShot()
    {
        if (m_shooting == false)
        {
            return;
        }
        m_shooting = false;

        m_parentBaseShot = null;
        m_homingTarget   = null;
        m_transformCache.ResetPosition();
        m_transformCache.ResetRotation();
    }
Пример #2
0
    // Finished Shot
    public void OnFinishedShot()
    {
        if (isShooting == false)
        {
            return;
        }
        isShooting = false;

        parentBaseShot = null;
        homingTarget   = null;
        bulletTransform.transform.position = Vector3.zero;
        bulletTransform.transform.position = Vector3.zero;
    }
Пример #3
0
    // Bullet Shot
    public void Shot(BulletShooterBase parentBaseShot,
                     float speed, float angle, float accelSpeed, float accelTurn,
                     bool homing, Transform homingTarget, float homingAngleSpeed,
                     bool wave, float waveSpeed, float waveRangeSize,
                     bool pauseAndResume, float pauseTime, float resumeTime,
                     bool useAutoRelease, float autoReleaseTime,
                     Utils2D.AXIS axisMove, bool inheritAngle,
                     bool useMaxSpeed, float maxSpeed, bool useMinSpeed, float minSpeed)
    {
        if (isShooting)
        {
            Debug.Log("Cancled due to shooting");
            return;
        }
        isShooting = true;

        this.parentBaseShot = parentBaseShot;

        this.speed               = speed;
        this.angle               = angle;
        this.accelSpeed          = accelSpeed;
        this.accelTurn           = accelTurn;
        this.isHoming            = homing;
        this.homingTarget        = homingTarget;
        this.homingAngleSpeed    = homingAngleSpeed;
        this.wave                = wave;
        this.waveSpeed           = waveSpeed;
        this.waveRangeSize       = waveRangeSize;
        this.pauseAndResume      = pauseAndResume;
        this.pauseTime           = pauseTime;
        this.resumeTime          = resumeTime;
        this.useDestroyAfterTime = useAutoRelease;
        this.destroyAfterTime    = autoReleaseTime;
        this.useMaxSpeed         = useMaxSpeed;
        this.maxSpeed            = maxSpeed;
        this.useMinSpeed         = useMinSpeed;
        this.minSpeed            = minSpeed;

        this.baseAngle = 0f;
        if (inheritAngle && this.parentBaseShot.lockOnShot == false)
        {
            this.baseAngle = this.parentBaseShot.transform.eulerAngles.z;
        }

        this.bulletTransform.rotation = Quaternion.Euler(bulletTransform.rotation.x, bulletTransform.rotation.y, baseAngle + this.angle);

        frameCount = 0f;
        timeCount  = 0f;
    }
Пример #4
0
    /// <summary>
    /// Bullet Shot
    /// </summary>
    public void Shot(BulletShooterBase parentBaseShot,
                     float speed, float angle, float accelSpeed, float accelTurn,
                     bool homing, Transform homingTarget, float homingAngleSpeed,
                     bool wave, float waveSpeed, float waveRangeSize,
                     bool pauseAndResume, float pauseTime, float resumeTime,
                     bool useAutoRelease, float autoReleaseTime,
                     Utils2D.AXIS axisMove, bool inheritAngle,
                     bool useMaxSpeed, float maxSpeed, bool useMinSpeed, float minSpeed)
    {
        if (m_shooting)
        {
            return;
        }
        m_shooting = true;

        m_parentBaseShot = parentBaseShot;

        m_speed            = speed;
        m_angle            = angle;
        m_accelSpeed       = accelSpeed;
        m_accelTurn        = accelTurn;
        m_homing           = homing;
        m_homingTarget     = homingTarget;
        m_homingAngleSpeed = homingAngleSpeed;
        m_wave             = wave;
        m_waveSpeed        = waveSpeed;
        m_waveRangeSize    = waveRangeSize;
        m_pauseAndResume   = pauseAndResume;
        m_pauseTime        = pauseTime;
        m_resumeTime       = resumeTime;
        m_useAutoRelease   = useAutoRelease;
        m_autoReleaseTime  = autoReleaseTime;
        m_axisMove         = axisMove;
        m_useMaxSpeed      = useMaxSpeed;
        m_maxSpeed         = maxSpeed;
        m_useMinSpeed      = useMinSpeed;
        m_minSpeed         = minSpeed;

        m_baseAngle = 0f;
        if (inheritAngle && m_parentBaseShot.lockOnShot == false)
        {
            if (m_axisMove == Utils2D.AXIS.X_AND_Z)
            {
                // X and Z axis
                m_baseAngle = m_parentBaseShot.transform.eulerAngles.y;
            }
            else
            {
                // X and Y axis
                m_baseAngle = m_parentBaseShot.transform.eulerAngles.z;
            }
        }

        if (m_axisMove == Utils2D.AXIS.X_AND_Z)
        {
            // X and Z axis
            m_transformCache.SetEulerAnglesY(m_baseAngle - m_angle);
        }
        else
        {
            // X and Y axis
            m_transformCache.SetEulerAnglesZ(m_baseAngle + m_angle);
        }

        m_selfFrameCnt  = 0f;
        m_selfTimeCount = 0f;
    }