// ============================================================================== /// <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); } }
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); } } } }
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(); }