protected override void ExitCollisionHandling(Collider2D collision)
 {
     if (collision.tag == "Bound")
     {
         LeanPool.Despawn(this.gameObject);
     }
 }
예제 #2
0
    public void DestroyEffectGradually()
    {
        //Debug.Log(gameObject.name);
        if (particle_systems.Length > 0)
        {
            bool stop = true;
            foreach (ParticleSystem system in particle_systems)
            {
                if (system.main.loop == true)
                {
                    system.loop = false;
                }
                system.enableEmission = false;

                if (system.isPlaying)
                {
                    stop = false;
                }
            }

            if (stop || m_Time > m_maxTime + 5)//一般duration不会超过5
            {
                LeanPool.Despawn(gameObject);
            }
        }
        else
        {
            LeanPool.Despawn(gameObject);
        }
    }
예제 #3
0
 void OnEnable()
 {
     _vecOnFloor.Set(transform.position.x, 0, transform.position.z);
     transform.position = _vecOnFloor;
     transform.rotation = Quaternion.Euler(new Vector3(90, 0, Random.Range(0, 360)));
     LeanPool.Despawn(gameObject, 5f);
 }
예제 #4
0
    private void StopAndAnimateAsteroidDestruction(bool wasHit = true)
    {
        _audioSource.Play();
        if (particleSystem != null)
        {
            var particles = LeanPool.Spawn(particleSystem, transform.position, Quaternion.identity);
            LeanPool.Despawn(particles, 0.5f);
        }

        if (wasHit)
        {
            _rigidbody.velocity = Vector3.zero;
        }
        else
        {
            _rigidbody.velocity = _rigidbody.velocity * 0.1f;
        }

        DOTween.To(() => _material.GetFloat(uniformName),
                   value => _material.SetFloat(uniformName, value),
                   _lightIntensity * lightEffectPower, lightEffectTimer).OnComplete(
            () =>
        {
            DOTween.To(() => _material.GetFloat(transparencyName),
                       value => _material.SetFloat(transparencyName, value),
                       0.0f, despawnTimer * 0.9f);
            LeanPool.Despawn(gameObject, despawnTimer);
        });
    }
    public void ShowHPMNSH(int valueShow, Vector3 posShow, Color colorShow)
    {
        GameObject objectShow = LeanPool.Spawn(txtShowHPMNSH, new Vector3(posShow.x, posShow.y + 1), Quaternion.identity);

        if (valueShow != 0)
        {
            objectShow.transform.GetComponent <TextMeshPro>().text = valueShow.ToString();
        }
        else
        {
            objectShow.transform.GetComponent <TextMeshPro>().text = string.Empty;
        }

        objectShow.transform.GetComponent <TextMeshPro>().color = colorShow;
        LeanTween.alpha(objectShow, 0, 0.01f).setOnComplete(() =>
        {
            LeanTween.moveLocalY(objectShow, objectShow.transform.localPosition.y + 0.5f, 0.5f).setEase(LeanTweenType.easeInBack);
            LeanTween.scale(objectShow, new Vector3(2, 2), 0.5f).setOnComplete(() =>
            {
                LeanTween.scale(objectShow, new Vector3(0.2f, 0.2f), 0.5f);
            });
            LeanTween.alpha(objectShow, 1, 0.5f).setOnComplete(() =>
            {
                LeanTween.alpha(objectShow, 0, 0.5f).setOnComplete(() =>
                {
                    LeanPool.Despawn(objectShow);
                });
            });
        });
    }
예제 #6
0
 private void OnBecameInvisible()
 {
     if (gameObject.activeSelf)
     {
         LeanPool.Despawn(gameObject);
     }
 }
예제 #7
0
        public override void TakeDamage(int damage)
        {
            if (!IsShield && !_immortal)
            {
                base.TakeDamage(damage);
            }

            if (IsShield && !_immortal)
            {
                IsShield = false;
                this.shield.SetActive(false);
            }

            if (CurrentHealth <= 0)
            {
                ManagerProvider.AnimationManager.PlayAnimatedObject
                (
                    base.explosionPrefab,
                    _selfTransform.position,
                    _selfTransform.rotation
                );
                ManagerProvider.AudioManager.PlaySound(base.explosionAudio);
                ManagerProvider.EventManager.PlayerDieEvent.OnEvent();

                GetComponentInChildren <WeaponController>().SetState(WeaponType.Laser);
                LeanPool.Despawn(this.gameObject);
            }
        }
 public override void Attack1()
 {
     base.Attack1();
     animatorHero.SetTrigger(Constant.attack1);
     //Auto_SelfDestruction_Object_Pool(listAnimationBullet[1].gameObject, objectBullet.transform.position, 1,0.4f);
     Delay(1.4f, () =>
     {
         GameObject hero_bullet = CreateObjectPool(bulletPrefab, objectBullet.transform.position);
         hero_bullet.GetComponent <SpriteRenderer>().sprite = listBullet[0];
         hero_bullet.transform.localScale = Vector3.one * 2;
         RotateObject(hero_bullet);
         //GameObject animation_bullet = CreateObjectPool(listAnimationBullet[0], Vector3.zero, hero_bullet.transform);
         if (BOL_Manager.instance.CanPlayMusicAndSfx())
         {
             MyAudioManager.instance.PlaySfx(sfx_sound_go);
         }
         LeanTween.move(hero_bullet, vector_competitor, 0.2f).setOnComplete(() =>
         {
             //SelfDestruction_Object_Pool(animation_bullet);
             SelfDestruction_Object_Pool(hero_bullet);
             if (BOL_Manager.instance.CanPlayMusicAndSfx())
             {
                 MyAudioManager.instance.PlaySfx(sfx_Attack1);
             }
             GameObject fxEffect = LeanPool.Spawn(ListFXSkill[0].gameObject, vector_competitor, Quaternion.identity);
             RotateObject(fxEffect);
             Delay(1f, () =>
             {
                 LeanPool.Despawn(fxEffect);
             });
             //Auto_SelfDestruction_Object_Pool(ListFXSkill[0].gameObject, vector_competitor, 1f);
             Delay(0.5f, ResetData);
         });
     });
 }
예제 #9
0
 public void DespawnGameObject(GameObject objecDespawn)
 {
     if (objecDespawn != null)
     {
         LeanPool.Despawn(objecDespawn);
     }
 }
예제 #10
0
 public void ReflashTerrain()
 {
     LeanPool.Despawn(_firstTerrain);
     _tempTerrain  = _leanPools[Random.Range(0, _leanPools.Length)].Spawn(Vector3.zero - new Vector3(0, 0, 10), Quaternion.identity);
     _firstTerrain = _lastTerrain;
     _lastTerrain  = _tempTerrain;
 }
예제 #11
0
 private void OnTriggerExit2D(Collider2D collision)
 {
     if (collision.tag == "Bound")
     {
         LeanPool.Despawn(this.gameObject);
     }
 }
예제 #12
0
 public void Free(AudioSource audioSource, float delay = 0f)
 {
     if (audioSource != null)
     {
         LeanPool.Despawn(audioSource.gameObject, delay);
     }
 }
예제 #13
0
    public void ShowFinish()
    {
        Debugs.LogBlue(" finish game");
        for (int i = 0; i < 3; i++)
        {
            currentPiece.transform.GetChild(i).GetComponent <SpriteRenderer>().sprite = null;
        }
        StopMoveVertical();

        countNextPiece = 0;
        countPiece     = 0;
        for (int i = 0; i < 12; i++)
        {
            for (int j = 0; j < 8; j++)
            {
                matrix[i, j]          = 0;
                listObjectBreak[i, j] = null;
                LeanPool.Despawn(matrixGameOject[i, j]);
                matrixGameOject[i, j] = null;
            }
        }
        BOL_Battle_Screen.instance.SelfDestruction();
        BOL_MainControl_Offline.instance.Back2LastScene();
        //StartCoroutine(CountDownStart());
    }
예제 #14
0
 public void DespawnAll()
 {
     foreach (Transform trans in rootCanvas.transform)
     {
         LeanPool.Despawn(trans.gameObject);
     }
 }
    private void myAddTiles()
    {
        foreach (GameObject o in _tiles)
        {
            LeanPool.Despawn(o);
        }
        _tiles.Clear();
        LeanPool.Despawn(_tileContainer);
        _tileContainer = LeanPool.Spawn(TileContainerPrefab);

        Vector2 camPos = new Vector2(Camera.main.transform.position.x, Camera.main.transform.position.y);
        float   height = 2f * Camera.main.orthographicSize;
        float   width  = height * Camera.main.aspect;

        for (int y = 0; y < MapSize.y; y++)
        {
            for (int x = 0; x < MapSize.x; x++)
            {
                var yActual = y - (MapSize.y / 2) + 1;
                var xActual = x - (MapSize.x / 2) + 1;
//                print("x, y : " + xActual + ", " + yActual);

                var t = LeanPool.Spawn(TilePrefab);
                t.transform.position = new Vector3(xActual, yActual, 0);
                t.transform.SetParent(_tileContainer.transform);
                var rend = t.GetComponent <SpriteRenderer>();
                rend.sprite = _map[(int)x, (int)y].TileImage;
                _tiles.Add(t);
            }
        }
    }
예제 #16
0
 private void ResolveCollision(GameObject other)
 {
     if (other.CompareTag("BorderCollider"))
     {
         LeanPool.Despawn(this);
     }
 }
예제 #17
0
 private void DespawnAllWorldObjects()
 {
     for (int i = World_T.childCount - 1; i >= 0; i--)
     {
         LeanPool.Despawn(World_T.GetChild(i));
     }
 }
예제 #18
0
 private void Update()
 {
     if (transform.position.x - _car.transform.position.x < DestroyThreshold)
     {
         LeanPool.Despawn(gameObject);
     }
 }
예제 #19
0
 private void OnTriggerEnter(Collider other)
 {
     if (!other.CompareTag("Player"))
     {
         LeanPool.Despawn(gameObject);
     }
 }
 public override void Attack_Q()
 {
     base.Attack_Q();
     animatorHero.SetTrigger(Constant.attackQ);
     vectorBow = bowObject.transform.position;
     Delay(0.7f, () =>
     {
         GameObject fxskill = LeanPool.Spawn(ListFXSkill[1].gameObject, vectorBow, Quaternion.identity);
         if (vector_competitor.x < 0 && fxskill.transform.localScale.x > 0)
         {
             fxskill.transform.localScale = new Vector3(fxskill.transform.localScale.x * -1, fxskill.transform.localScale.y);
         }
         else if (vector_competitor.x > 0 && fxskill.transform.localScale.x < 0)
         {
             fxskill.transform.localScale = new Vector3(fxskill.transform.localScale.x * -1, fxskill.transform.localScale.y);
         }
         Delay(2, () =>
         {
             LeanPool.Despawn(fxskill);
         });
         //Auto_SelfDestruction_Object_Pool(ListFXSkill[1].gameObject, vectorBow, 2);
     });
     AsheHeroQ(18, 0.7f, 0.5f, new Vector3(0, vectorBow.y, 0));
     AsheHeroQ(10, 0.7f, 0.5f, new Vector3(0, vectorBow.y + 0.5f, 0));
     AsheHeroQ(0, 0.7f, 0.5f, new Vector3(0, vectorBow.y + 1f, 0));
     AsheHeroQ(-10, 0.7f, 0.5f, new Vector3(0, vectorBow.y - 0.5f, 0));
     AsheHeroQ(-18, 0.7f, 0.5f, new Vector3(0, vectorBow.y - 1f, 0));
     Delay(1.5f, ResetData);
 }
예제 #21
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.transform.tag == "Player")
     {
         collision.transform.SendMessage("PickUp", SendMessageOptions.DontRequireReceiver);
         LeanPool.Despawn(gameObject);
     }
 }
    private IEnumerator Despawn()
    {
        yield return(new WaitForFixedUpdate());

        LeanPool.Despawn(gameObject.transform.root);
        s_spawner.decreaseTrackCount();
        //Debug.Log("despawn");
    }
예제 #23
0
 void OnCollisionEnter2D(Collision2D col)
 {
     if (col.gameObject.tag != null)
     {
         LeanPool.Despawn(gameObject);
     }
     //Debug.Log("Collision2D Name: " + col.gameObject.name.ToString() + " Frame: " + Time.frameCount);
 }
예제 #24
0
    public void PlayClipAtSource(AudioClip clip, Vector3 position)
    {
        var _poolsource = LeanPool.Spawn(sourcePrefab, position, Quaternion.identity);
        var _sourcecomp = _poolsource.GetComponent <AudioSource>();

        _sourcecomp.PlayOneShot(clip);
        LeanPool.Despawn(_poolsource, clip.length);
    }
 public void SelfDestruction_Object_Pools(GameObject objectPool)
 {
     if (objectPool == null || !objectPool.activeSelf)
     {
         return;
     }
     LeanPool.Despawn(objectPool);
 }
예제 #26
0
 public void DespawnLapTimes()
 {
     foreach (var item in timeLaps)
     {
         LeanPool.Despawn(item);
     }
     timeLaps.Clear();
 }
예제 #27
0
 public void SelfDestruction_hero(GameObject hero)
 {
     if (hero == null)
     {
         return;
     }
     LeanPool.Despawn(hero);
 }
예제 #28
0
 // Update is called once per frame
 void Update()
 {
     Physics2D.IgnoreLayerCollision(9, 9);
     if (bulletDestroyTImer.IsFinished)
     {
         LeanPool.Despawn(this.gameObject);
     }
 }
예제 #29
0
 public void DespawnObjectPool(GameObject objectprefab)
 {
     if (objectprefab == null)
     {
         return;
     }
     LeanPool.Despawn(objectprefab);
 }
 public void SelfDestruction()
 {
     if (gameObject == null || !gameObject.activeSelf)
     {
         return;
     }
     LeanPool.Despawn(gameObject);
 }