Exemplo n.º 1
0
        public AssetBundleButton(CompanionResource resource, AssetBundleResource bundle, RuntimePlatform platform,
                                 UnityObject asset, IUsesCloudStorage storageUser)
        {
            clicked += OnClicked;

            if (asset == null)
            {
                SetEnabled(false);
            }

            m_Resource    = resource;
            m_Platform    = platform;
            m_Bundle      = bundle;
            m_Asset       = asset;
            m_StorageUser = storageUser;

            name = $"{resource.name} - {platform} bundle button";

            var state = State.NotUploaded;

            if (m_Bundle != null)
            {
                if (m_Bundle.Timestamp >= m_Resource.timestamp)
                {
                    state = State.Uploaded;
                }
                else
                {
                    state = CompanionResourceUI.IsPlatformInstalled(m_Platform) ? State.Update : State.Warn;
                }
            }

            SetState(state);
        }
Exemplo n.º 2
0
        void OnClicked()
        {
            switch (m_State)
            {
            case State.NotUploaded:
                if (m_Bundle != null && m_Bundle.Timestamp < m_Resource.timestamp)
                {
                    SetState(State.Update);
                }
                else
                {
                    SetState(CompanionResourceUI.IsPlatformInstalled(m_Platform) ? State.Uploaded : State.Warn);
                }
                break;

            case State.Uploaded:
                SetState(State.NotUploaded);
                break;

            case State.Update:
                SetState(State.Uploaded);
                break;

            case State.Warn:
                SetState(State.NotUploaded);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }