Пример #1
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.tag == "Lander")
     {
         shipHealth.ReduceHealth();
         screenShake.AddTrauma(1.0f);
         Destroy(gameObject);
     }
 }
Пример #2
0
    void Update()
    {
        if (stopTilt)
        {
            return;
        }

        float shipAngleOffset = Mathf.PerlinNoise(randomSeed, Time.time);

        //scale to (-1;1)
        shipAngleOffset  = shipAngleOffset * 2f - 1f;
        shipAngleOffset *= noiseStrength;

        shipAngle += shipAngleOffset * Time.deltaTime;
        shipAngle  = Mathf.Clamp(shipAngle, -maxShipAngle, maxShipAngle);


        outsideCamera.rotation = Quaternion.Euler(0f, 0f, shipAngle * 15f);

        bool angleInWarningRange = shipAngle > shipAngleToHealthDrop || shipAngle < -shipAngleToHealthDrop;

        if (healthDropping)
        {
            if (!angleInWarningRange)
            {
                warning.EndWarning();
                healthDropping  = false;
                healthDropTimer = 0f;
            }

            healthDropTimer += Time.deltaTime;
            if (healthDropTimer > timeUntilHealthDrop)
            {
                health.ReduceHealth();
                screenShake.AddTrauma(0.5f);
                shipAngle       = 0f;
                healthDropTimer = 0f;
            }
        }
        else if (angleInWarningRange)
        {
            healthDropping = true;
            warning.StartWarning();
        }
    }