private void FadeOutImages() { if (!isEnable) { return; } ImageCard[] images = transform.GetComponentsInChildren <ImageCard>(); int imageLength = images.Length; for (int i = 0; i < imageLength; i++) { float delayTime = Random.Range(0.1f, maxPerImageDelayTime); FadeSingleImage(delayTime, images[i]); } //Call Brink animation _ = UtilityMethod.DoDelayWork(maxPerImageDelayTime, () => { logo_holo_animator.SetTrigger(AnimationTriggerKey); }, cancelToken.Token); //Call Regenerate image wall if (Looping) { int animationTime = 2; _ = UtilityMethod.DoDelayWork(animationTime + maxPerImageDelayTime, () => { GenerateImageWall(); }, cancelToken.Token); } }
private async void PrintImageOnScreen(float delayTime, float posX, float posY, FileUtility.ImageData imageData, ImageCard imageCard) { imageCard.rectTransform.anchoredPosition = new Vector2(posX, posY); imageCard.rawImage.enabled = false; imageCard.rawImage.color = new Color(1, 1, 1, 0); imageCard.background.color = new Color(imageCard.background.color.r, imageCard.background.color.g, imageCard.background.color.b, 0); await UtilityMethod.DoDelayWork(delayTime, () => { textureUtility.GetTexture(imageData.url, (Sprite texture) => { if (imageCard == null) { return; } imageCard.background.enabled = true; imageCard.rawImage.enabled = true; imageCard.rawImage.sprite = texture; imageCard.rawImage.preserveAspect = true; imageCard.rawImage.DOFade(1, fadeInOutTime); imageCard.background.DOFade(1, fadeInOutTime); fileUtility.MarkImageVisibility(imageCard.imageData, false); }); }, cancelToken.Token); }
private void DrawSingleItem(ImageCard imageCard, System.Action callback) { string key = this._fileUtility.GetCompanykeyByIndex(CompanyIndex); FileUtility.ImageData picked_imageData = this._fileUtility.GetRandomImageByTag(key, true); if (FileUtility.IsImageValid(picked_imageData)) { _fileUtility.MarkPrizeDrawPrivilege(picked_imageData, true); int total_generate_num = _settingData.draw_flip_num; float period = _settingData.draw_flip_period; float totalTime = (total_generate_num * period) + period; RandomGenerateImage(imageCard, key, total_generate_num, period, 0); _ = UtilityMethod.DoDelayWork(totalTime, () => { SetImageCard(imageCard, picked_imageData); callback(); }); } else { callback(); } }
private void OnImageWallShowComplete() { if (!isEnable) { return; } _ = UtilityMethod.DoDelayWork(CycleTime, () => { FadeOutImages(); }, cancelToken.Token); }
private void GenerateImageWall() { if (!isEnable) { return; } //Find if any new image is being added fileUtility.LoadAllImagesFromFolder(); //_ScreenSize = new Vector2(Screen.width, Screen.height ); Vector2 cardSize = new Vector2(card_width, card_height); Debug.Log("_ScreenSize " + _ScreenSize); int maxCardCol = Mathf.FloorToInt((_ScreenSize.x + LineSpace) / cardSize.x) - 1; int maxCardRow = Mathf.FloorToInt((_ScreenSize.y + LineSpace) / cardSize.y); maxCardCol = Mathf.Clamp(maxCardCol, maxCardCol, this.MaxColumn); maxCardRow = Mathf.Clamp(maxCardRow, maxCardRow, this.MaxRow); float centerX = 0, centerY = 0; float startX = centerX - ((maxCardCol - 1) * cardSize.x * 0.5f + ((maxCardCol - 1) * LineSpace * 0.5f)), startY = centerY + ((maxCardRow - 1) * cardSize.y * 0.5f + ((maxCardRow - 1) * LineSpace * 0.5f)); Debug.Log("maxCardCol " + maxCardCol + ", maxCardRow" + maxCardRow); Debug.Log("maxCardWidth " + (maxCardCol * cardSize.x) + ", maxCardHeight" + (maxCardRow * cardSize.y)); for (int x = 0; x < maxCardCol; x++) { for (int y = 0; y < maxCardRow; y++) { ImageCard g_card = GetImageCard(); float delayTime = Random.Range(0.1f, maxPerImageDelayTime); float posX = startX + (cardSize.x * x) + (x * LineSpace), posY = startY - (cardSize.y * y) - (y * LineSpace); FileUtility.ImageData randomImage = fileUtility.GetRandomImage(true); if (FileUtility.IsImageValid(randomImage)) { //imagecard_list.Add(g_card); g_card.imageData = randomImage; PrintImageOnScreen(delayTime, posX, posY, randomImage, g_card); } } } var task = UtilityMethod.DoDelayWork(maxPerImageDelayTime + 0.1f, () => { OnImageWallShowComplete(); }, cancelToken.Token); }
private async void FadeSingleImage(float delayTime, ImageCard imageCard) { Vector2 targetPos = Vector2.zero; await UtilityMethod.DoDelayWork(delayTime, () => { imageCard.DORestart(); imageCard.background.DOFade(0, fadeInOutTime); imageCard.rawImage.DOFade(0, fadeInOutTime); imageCard.rectTransform.DOAnchorPos(targetPos, fadeInOutTime).OnComplete(() => { imageCard.rawImage.enabled = false; PoolManager.instance.Destroy(imageCard.gameObject); }); }, cancelToken.Token); }
private void RandomGenerateImage(ImageCard imageCard, string company_key, int total_generate_num, float period, int current_generate_num) { if (current_generate_num >= total_generate_num) { return; } FileUtility.ImageData imageData = this._fileUtility.GetRandomImageByTag(company_key, false); if (FileUtility.IsImageValid(imageData)) { SetImageCard(imageCard, imageData); current_generate_num += 1; _ = UtilityMethod.DoDelayWork(period, () => { RandomGenerateImage(imageCard, company_key, total_generate_num, period, current_generate_num); }); } }