IEnumerator anim() { RectTransform me = gameObject.GetComponent <RectTransform>(); me.SetAsLastSibling(); IAnimInterface a1 = RectTransfer.Apply(gameObject, middle, flydur); a1.Run(); IAnimInterface a2 = gameObject.GetComponent <CardFlip>(); a2.Run(); while (!a1.isDone || !a2.isDone) { yield return(null); } Destroy(a1 as Component); //a1=gameObject.GetComponent<CardFlip>(); //a1.Run(); //while(!a1.isDone) yield return null; //Destroy(a1 as Component); a1 = RectTransfer.Apply(gameObject, hand, flydur); a1.Run(); while (!a1.isDone) { yield return(null); } Destroy(a1 as Component); done = true; }
IEnumerator trans() { Debug.Log("trans"); SingleGame.Conditional castCard = _game.hookData["castSource"] as SingleGame.Conditional; //SingleGame.Conditional targetCard=_game.hookData["castTarget"] as SingleGame.Conditional; if (castCard != null) { if (castCard["_Owner"] != player1) { hooks.Remove("transformation"); SingleGame.GameManager.endHook(); yield break; } int handnum = -1; for (int i = 0; i < handCards.Count; i++) { if (castCard == handCards[i].cardData) { handnum = i; break; } } if (handnum == -1) { Debug.Log("Some error"); } else { CardControl toMove = handCards[handnum]; RectTransform original = toMove.GetComponent <RectTransform>(); RectTransform canv = original.RootCanvasTransform(); Vector4 posvec = canv.getAnchorsFromCanvasRect(original.RootCanvasRect()); handCards.Remove(toMove); List <IAnimInterface> anims = new List <IAnimInterface>(); for (int j = 0; j < mpBody.Count; j++) { CardReceptor cr = mpBody[j]; if (castCard.hasTag(cr.validTag)) { GameObject crd = Instantiate(card) as GameObject; CardControl crc = crd.GetComponent <CardControl>(); crc.cardData = castCard; crc.playerID = castCard["_Owner.playerID"] as string; SpawnCardAnim todel = crd.GetComponent <SpawnCardAnim>(); Destroy(todel as Component); CardFlip flp = crd.GetComponent <CardFlip>(); flp.Flip(); RectTransform ctr = crd.GetComponent <RectTransform>(); ctr.SetParent(canv, false); ctr.SetAsLastSibling(); ctr.assignRectAnchors(posvec); RectTransform targpos = cr.gameObject.GetComponent <RectTransform>(); IAnimInterface an = RectTransfer.Apply(crd, targpos, shiftdur); an.Run(); anims.Add(an); cr.cardData = castCard; } } Destroy(toMove.gameObject); bool done = false; while (!done) { done = true; foreach (IAnimInterface anim in anims) { done = (done & anim.isDone); } yield return(null); } foreach (IAnimInterface anim in anims) { RectTransfer rt = anim as RectTransfer; Destroy(rt.gameObject); } } } hooks.Remove("transformation"); SingleGame.GameManager.endHook(); yield break; }