/// <summary> Recycles or creates a falling ring as specified </summary> /// <param name="_pos"> Starting position </param> /// <param name="_scale"> Scale </param> /// <param name="_color"> Colour </param> public void SpawnFallingRing(Vector3 _pos, float _scale, Color _color) { GameObject gameObj = RecyclePool.RetrieveOrCreate(RecyclePool.PoolTypes.FallingRing, fallingRingPrefab); FallingRing fallingRing = gameObj.GetComponent <FallingRing>(); fallingRing.Init(_pos, _scale, _color); fallingRings.Add(fallingRing); }
/// <summary> Creates (or reuses) a shockwave GameObject </summary> /// <param name="_position"> Centre position </param> /// <param name="_color"> Ripple's colour </param> public void StartRipple(Vector3 _position, Color _color) { GameObject gameObj = RecyclePool.RetrieveOrCreate(RecyclePool.PoolTypes.Shockwave, shockwavePrefab); // Set position & rotation gameObj.transform.parent = myTrans; gameObj.transform.position = _position; gameObj.transform.localScale = Vector3.zero; // (Re)start popup animation Shockwave shockwaveScript = gameObj.GetComponent <Shockwave>(); shockwaveScript.Init(_color); shockwaves.Add(shockwaveScript); }
/// <summary> Creates (or reuses) a disappearing block GameObject </summary> /// <param name="_block"> Block from which to create </param> public static void StartDisappearing(Block _block, GameObject _disappearPrefab) { GameObject gameObj = RecyclePool.RetrieveOrCreate(RecyclePool.PoolTypes.BlockDisappear, _disappearPrefab); // Match pos/rot/scale of original block Transform trans = gameObj.transform; Transform blockTrans = _block.trans; trans.parent = blockTrans.parent; trans.localPosition = blockTrans.localPosition; trans.localRotation = blockTrans.localRotation; trans.localScale = blockTrans.localScale; // (Re)start the disappear anim gameObj.GetComponent <BlockDisappear>().ResetAnim(); }