Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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();
        }
    }
Exemplo n.º 4
0
    private void OnImageWallShowComplete()
    {
        if (!isEnable)
        {
            return;
        }

        _ = UtilityMethod.DoDelayWork(CycleTime, () =>
        {
            FadeOutImages();
        }, cancelToken.Token);
    }
Exemplo n.º 5
0
    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);
    }
Exemplo n.º 6
0
    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);
    }
Exemplo n.º 7
0
    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);
            });
        }
    }