Esempio n. 1
0
    void Fire()
    {
        GameObject newProjectile = Instantiate(m_projectile) as GameObject;

        newProjectile.transform.position = transform.position;

        if (newProjectile.GetComponent <Rigidbody2D>())
        {
            newProjectile.GetComponent <Rigidbody2D>().AddForce(transform.forward * m_launchIntensity, ForceMode2D.Impulse);

            newProjectile.transform.eulerAngles = new Vector3(0, 0, -Mathf.Atan2(transform.forward.x, transform.forward.y) * Mathf.Rad2Deg);

            SmartMissile2D smartMissile = newProjectile.GetComponent <SmartMissile2D>();
            smartMissile.m_lifeTime          = m_config.m_lifeTime;
            smartMissile.m_searchRange       = m_config.m_searchRange;
            smartMissile.m_searchAngle       = m_config.m_searchAngle;
            smartMissile.m_canLooseTarget    = m_config.m_canLooseTarget;
            smartMissile.m_guidanceIntensity = m_config.m_guidanceIntensity;
            smartMissile.m_targetOffset      = m_config.m_targetOffset;

            smartMissile.m_distanceInfluence = m_config.m_selectedPreset;
        }
        else if (newProjectile.GetComponent <Rigidbody>())
        {
            newProjectile.GetComponent <Rigidbody>().AddForce(transform.forward * m_launchIntensity, ForceMode.Impulse);

            SmartMissile3D smartMissile = newProjectile.GetComponent <SmartMissile3D>();
            smartMissile.m_lifeTime          = m_config.m_lifeTime;
            smartMissile.m_searchRange       = m_config.m_searchRange;
            smartMissile.m_searchAngle       = m_config.m_searchAngle;
            smartMissile.m_canLooseTarget    = m_config.m_canLooseTarget;
            smartMissile.m_guidanceIntensity = m_config.m_guidanceIntensity;
            smartMissile.m_targetOffset      = m_config.m_targetOffset;

            smartMissile.m_distanceInfluence = m_config.m_selectedPreset;
        }
    }
 // Start is called before the first frame update
 void Start()
 {
     _health  = GetComponent <Health>();
     _missile = GetComponent <SmartMissile2D>();
     anim     = GetComponent <Animator>();
 }