Пример #1
0
    private void Update()
    {
        BaseUpdate();

        timeSinceLastJump            += Time.deltaTime;
        elapsed                      += Time.deltaTime;
        invincibilityCooldownElapsed += Time.deltaTime;

        if (elapsed > IslandHittable &&
            !hitIsland && MyCollider.IsTouching(IslandCollider))
        {
            hitIsland = true;
            CamJitter.JitterForDuration(ExplosionJitterDuration);
            CrashSfx.Play();
            BigSandHitSFX.Play();
            Explosion.gameObject.SetActive(true);
            Stern.gameObject.SetActive(false);
        }

        if (!startP2 && elapsed > PartTwoTime)
        {
            // zoom out, start spawning sharks
            startP2 = true;
            MainCam.gameObject.transform.position = CamPosP2;
            CamJitter.ResetStartingPosition();

            Old.gameObject.SetActive(false);
            New.gameObject.SetActive(true);

            this.gameObject.transform.position          += LowerAmountP2;
            SternCollider.gameObject.transform.position += LowerAmountP2;
            Stern.StartPartTwo();
            Lemon.gameObject.transform.localPosition = lemonInitialLocalPosition;
        }

        if (!startP3 && hitIsland && elapsed > PartThreeTime)
        {
            startP3 = true;
            LoadNextScene();
        }

        if (this.MyCollider.IsTouching(SternCollider))
        {
            TakeDamage(KnockbackForceSternTouch);
        }

        if (this.BodyCollider.IsTouching(SternBodyCollider))
        {
            var rLaugh = Random.Range(0, SternLaughs.Length);
            SternLaughs[rLaugh].Play();

            TakeDamage(KnockbackForceSternTouch);
        }

        BaseUpdate();

        var didSomething = false;

        if (!hitIsland)
        {
            if (CommandsHeldThisFrame.ContainsKey(Command.Up) || CommandsHeldThisFrame.ContainsKey(Command.Fire))
            {
                didSomething = true;
                UpdateJump();
            }

            if (CommandsHeldThisFrame.ContainsKey(Command.Left))
            {
                didSomething = true;
                UpdateMoveLeftRight(MoveDirection.Left);
            }
            else if (CommandsHeldThisFrame.ContainsKey(Command.Right))
            {
                didSomething = true;
                UpdateMoveLeftRight(MoveDirection.Right);
            }
        }


        if (startP2)
        {
            // do specific new updates for things like the sharks
        }
    }