예제 #1
0
    public void UpdateDisplay()
    {
        if (IsIncoming.ClearDirty())
        {
            _incomingText.text = IsIncoming.Get() ? "Receiving:" : "Sending:";
        }

        if (Description.ClearDirty())
        {
            _descriptionText.text = Description.Get();
        }

        if (TotalDataSize.ClearDirty() || CurrentDataSize.ClearDirty() || State.ClearDirty())
        {
            if (CurrentDataSize.Get() == -1)
            {
                _progressSlider.gameObject.SetActive(false);

                _progressText.text = $"{State} - {StringUtility.ByteCountToReadableString(TotalDataSize.Get())}";
            }
            else
            {
                _progressSlider.gameObject.SetActive(true);

                float ratio = (float)CurrentDataSize.Get() / TotalDataSize.Get();
                _progressSlider.value = ratio;
                _progressText.text    = $"{StringUtility.ByteCountRatioToReadableString(CurrentDataSize.Get(), TotalDataSize.Get())} ({round(ratio * 100)}%)";
            }
        }
    }