/// <summary> /// 展示奖励 /// </summary> void ShowAward() { //Debug.Log("展示奖励"); if (_prizes != null && _currShowDataIndex < _prizes.Count) { CSWareHouseStruct data = _prizes[_currShowDataIndex]; //Debug.Log("奖品展示:" + data.GoodId); _showMoveGiftItem.transform.localPosition = Vector3.zero; _showMoveGiftItem.ShowPrize(data); _showMoveGiftItem.Show(true); ReceiveAwardGiftItemController item = GameObject.Instantiate(_receiveAwardGiftItemController, _giftBoxTra).GetComponent <ReceiveAwardGiftItemController>(); item.ShowPrize(data); item.Show(false); _receiveAwardGiftItemControllers.Add(item); _currShowDataIndex++; LayoutRebuilder.ForceRebuildLayoutImmediate(_giftBoxTra.GetComponent <RectTransform>()); StartCoroutine(ItemShowMove(item)); } else { //Debug.Log("奖品展示完毕"); StopAllCoroutines(); _maskBtn.enabled = true; } }
/// <summary> /// 移动item /// </summary> /// <param name="tage"></param> /// <returns></returns> IEnumerator ItemShowMove(ReceiveAwardGiftItemController tage) { RectTransform rect = tage.transform.GetComponent <RectTransform>(); Camera tageCamera = transform.parent.parent.Find("UICamera").GetComponent <Camera>(); Vector3 vector3 = tageCamera.WorldToScreenPoint(new Vector3(rect.position.x, rect.position.y, rect.position.z)); Vector2 tageVector = Vector3.zero; RectTransformUtility.ScreenPointToLocalPointInRectangle(_showMoveGiftItem.transform.GetComponent <RectTransform>(), vector3, tageCamera, out tageVector); //Debug.Log("移动目标:" + tageVector); //Debug.Log("当前目标:" + _showMoveGiftItem.transform.localPosition); while (Vector3.Distance(_showMoveGiftItem.transform.localPosition, tageVector) > 0.1f) { _showMoveGiftItem.transform.localPosition = Vector3.MoveTowards(_showMoveGiftItem.transform.localPosition, tageVector, 100f); yield return(new WaitForSeconds(0.01f)); } //Debug.Log("奖品移动完毕"); _showMoveGiftItem.Show(false); tage.Show(true); ShowAward(); }
/// <summary> /// 初始化组件 /// </summary> void Initial() { _maskBtn = transform.Find("Mask").GetComponent <Button>(); _treasureChestBoxTra = transform.Find("TreasureChestBox"); _lightingEffectRect = _treasureChestBoxTra.Find("LightingEffect").GetComponent <RectTransform>(); _bgLightRect = _lightingEffectRect.Find("BgLight").GetComponent <RectTransform>(); _treasureChestIcon = _treasureChestBoxTra.Find("TreasureChestIcon").GetComponent <Image>(); _treasureChestBoxTraDOTween = _treasureChestBoxTra.GetComponent <DOTweenAnimation>(); _shakeDOTween = _treasureChestIcon.transform.GetComponent <DOTweenAnimation>(); _receiveAwardGiftItemController = transform.Find("GiftItem").GetComponent <ReceiveAwardGiftItemController>(); _giftBoxTra = transform.Find("GiftBox"); _showMoveGiftItem = _treasureChestBoxTra.Find("ShowMoveGiftItem").GetComponent <ReceiveAwardGiftItemController>(); _theButterflyEffectBox = transform.Find("TheButterflyEffectBox").GetComponent <CanvasGroup>(); _maskBtn.onClick.RemoveListener(MaskClick); _maskBtn.onClick.AddListener(MaskClick); _shakeDOTween.onComplete.RemoveAllListeners(); _shakeDOTween.onComplete.AddListener(Transfiguration); _treasureChestBoxTraDOTween.onComplete.RemoveAllListeners(); _treasureChestBoxTraDOTween.onComplete.AddListener(MoverEnd); _isInitial = true; }