Beispiel #1
0
		// ==============================================================================

		/// <summary>
		/// Shows a new ad on the canvas if one is not already shown.
		/// </summary>
		/// <param name="force">If set to <c>true</c> force a new ad to be shown immediately.</param>
		public void ShowAd(bool force = false)
		{
			if (_loadingState == MediaLoadingState.Waiting || _loadingState == MediaLoadingState.Failed || force)
			{
				_loadingState = MediaLoadingState.Loading;
				VreoCommunicate.RequestRandomAd(mediaType, category, spotId, isClickable, RandomAdCallback);
			}
		}
Beispiel #2
0
		void Update()
		{
			if (!Application.isPlaying)
				return;

			MovieQuad.Update();

			if (MovieQuad.BlockPercentage > 0.0f)
			{
				highlight.SetActive(false);
			}
			else
			{
				highlight.SetActive(enableHighlight);
			}

			// send view data intermittently
			_sendViewDataTimer -= Time.deltaTime;
			if (_sendViewDataTimer <= 0.0f)
			{
				_sendViewDataTimer = SendViewDataTime;

				var viewStat = MovieQuad.GetViewingData();

				VreoCommunicate.__SendViewData(viewStat);
			}

			if (_loadingState == MediaLoadingState.Showing)
			{
				var type = (MediaType) CurrentVreoResponse.result.ID_MediaType;

				switch (type)
				{
					case MediaType.LandscapeVideo:
					case MediaType.PortraitVideo:
					{
						if (VideoPlayer)
						{
							//increment total play time
							if (_videoPaused == false && VideoPlayer.isPlaying)
								_playingTime += Time.deltaTime;
						}
						break;
					}
					case MediaType.MediumRectangle:
					case MediaType.LargeRectangle:
					case MediaType.WideSkyscraper:
					case MediaType.Leaderboard:
					{
						_playingTime += Time.deltaTime;

						if (autoPlayNew && _playingTime >= imageDuration)
							ShowAd(true);
						break;
					}
				}
			}
			else if (_loadingState == MediaLoadingState.Succeeded && (mediaType == MediaType.LandscapeVideo || mediaType == MediaType.PortraitVideo))
			{
				if (initialRandomDelay > 0)
				{
					initialRandomDelay -= Time.deltaTime;
					if (initialRandomDelay <= 0)
						VideoPlayer_PrepareCompleted(VideoPlayer);
				}
				else
				{
					if (MovieQuad.ScreenPercentage > proximity)
					{
						VideoPlayer_PrepareCompleted(VideoPlayer);
					}
				}
			}
		}
Beispiel #3
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            EditorGUI.BeginChangeCheck();
            EditorGUILayout.PropertyField(_mediaType);
            EditorGUILayout.PropertyField(_category);
            if (EditorGUI.EndChangeCheck())
            {
                var adCanvas = GetSelectedAdCanvas();
                if (adCanvas != null)
                {
                    adCanvas.OnMediaTypeChanged((VreoAdCanvas.MediaType)_mediaType.enumValueIndex);
                }
            }

            if (!IsPrefabMode())
            {
                EditorGUILayout.PropertyField(_spotId);

                EditorGUI.BeginDisabledGroup(string.IsNullOrEmpty(_spotId.stringValue) || !_isRegistered.boolValue);

                if (GUILayout.Button("Unregister Ad Spot"))
                {
                    VreoCommunicate.RequestUnregisterAd(_spotId.stringValue, () =>
                    {
                        Debug.Log($"Ad spot with ID {_spotId.stringValue} was unregistered.");
                    }, error =>
                    {
                        Debug.LogError($"An error occured while registering ad spot with ID {_spotId.stringValue}. Error: {error}");
                    });
                }
            }

            EditorGUI.EndDisabledGroup();

            EditorGUILayout.Space();
            EditorGUILayout.PropertyField(_playOnAwake);
            EditorGUILayout.PropertyField(_autoPlayNew);
            EditorGUILayout.PropertyField(_isClickable);

            EditorGUI.BeginDisabledGroup(!_isClickable.boolValue);
            EditorGUILayout.PropertyField(_enableHighlight);
            EditorGUI.EndDisabledGroup();

            switch ((VreoAdCanvas.MediaType)_mediaType.enumValueIndex)
            {
            case VreoAdCanvas.MediaType.MediumRectangle:
            case VreoAdCanvas.MediaType.LargeRectangle:
            case VreoAdCanvas.MediaType.WideSkyscraper:
            case VreoAdCanvas.MediaType.Leaderboard:
                EditorGUILayout.PropertyField(_imageDuration);
                break;

            case VreoAdCanvas.MediaType.PortraitVideo:
            case VreoAdCanvas.MediaType.LandscapeVideo:
                EditorGUILayout.PropertyField(_initialRandomDelay);
                break;
            }

            EditorGUILayout.Slider(_proximity, 0.0f, 100.0f);

            serializedObject.ApplyModifiedProperties();
        }