Ejemplo n.º 1
0
    private IEnumerator UnFreezing(Movingplatform platform, float freezeTime)
    {
        yield return(new WaitForSeconds(freezeTime));

        if (platform != null)
        {
            FreezeBullet.FrozenPlatform frozen = FreezeBullet.frozenPlatforms.FirstOrDefault(p => p.platform == platform);

            if (frozen.platform != null)
            {
                frozen.platform.TimeScale = frozen.unfrozenTimeScale;
                FreezeBullet.frozenPlatforms.Remove(frozen);
            }
        }
    }
Ejemplo n.º 2
0
 public void StartUnFreeze(Movingplatform platform, float freezeTime)
 {
     StartCoroutine(UnFreezing(platform, freezeTime));
 }
Ejemplo n.º 3
0
    protected override void Collide(Collision2D other)
    {
        Rigidbody2D rb = other.gameObject.GetComponent <Rigidbody2D>();

        if (rb)
        {
            if (frozenObjects.Contains(rb))
            {
                rb.isKinematic     = false;
                rb.velocity        = Vector2.zero;
                rb.angularVelocity = 0;
                rb.constraints     = RigidbodyConstraints2D.None;
                frozenObjects.Remove(rb);
            }
            else
            {
                //scaled.TimeScale = 0;
                rb.isKinematic     = true;
                rb.velocity        = Vector2.zero;
                rb.angularVelocity = 0;
                rb.constraints     = RigidbodyConstraints2D.FreezeAll;
                frozenObjects.Add(rb);
                GameObject.FindWithTag("Player").GetComponentInChildren <TimeGun>().StartUnFreeze(rb, freezeTime);
            }

            return;
        }

        Movingplatform platform = other.gameObject.GetComponent <Movingplatform>();

        if (platform)
        {
            FrozenPlatform frozen = frozenPlatforms.FirstOrDefault(p => p.platform == platform);

            if (frozen.platform != null)
            {
                frozen.platform.TimeScale = frozen.unfrozenTimeScale;
                frozenPlatforms.Remove(frozen);
            }
            else
            {
                frozenPlatforms.Add(new FrozenPlatform {
                    platform = platform, unfrozenTimeScale = platform.TimeScale
                });
                platform.TimeScale = 0;
                GameObject.FindWithTag("Player").GetComponentInChildren <TimeGun>().StartUnFreeze(platform, freezeTime);
            }

            return;
        }

        Orbit o = other.gameObject.GetComponent <Orbit>();

        if (o)
        {
            if (frozenOrbits.Contains(o))
            {
                o.enabled = true;
                frozenOrbits.Remove(o);
            }
            else
            {
                frozenOrbits.Add(o);
                o.enabled = false;
                GameObject.FindWithTag("Player").GetComponentInChildren <TimeGun>().StartUnFreeze(o, freezeTime);
            }
        }
    }