• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

146
Vistas
Manejar la interactividad del botón para anuncios en Unity

Estoy usando Unity Ads en mi aplicación. Todo funciona bien, pero quiero agregar una función que maneje la interactividad del botón Anuncio, ya sea que el Anuncio esté listo o no, durante toda la vida útil de la aplicación.

La solución más simple que he codificado consiste en verificar la disponibilidad de los anuncios dentro del método update() :

 public class AdButton : MonoBehaviour { // Some stuff here void Update() { if (myButton) myButton.interactable = Advertisement.IsReady(placementId); } }

pero también pensé en usar eventos de Actions :

 public class AdsManager : MonoBehaviour { public static event Action<bool> AdReady; // Some stuff here void update() { adReady?.invoke(Advertisement.isReady(placementId)); } }
 public class AdButton : MonoBehaviour { // Some stuff here void OnEnable() { AdsManager.AdReady += RefreshButton; } void RefreshButton(bool interactivity) { myButton.interactable = interactivity } void OnDisable() { AdsManager.AdReady -= RefreshButton; } }

El problema es que soy nuevo en Unity y me da un poco de miedo el método update() . He estado leyendo que es fácil sobrecargar la aplicación debido a la naturaleza de esa función (llamada una vez por cuadro).

¿Debería preocuparme por estas líneas de código o por llamar a cada cuadro? ¿Estas instrucciones no ralentizan mi aplicación?

Gracias por tu ayuda.

simo

almost 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Mi sugerencia sería usar el enfoque de Acción, ese es el enfoque que he tomado en el pasado, por ejemplo:

 private Action onAdReadyListener; public void RegisterOnReadyListener(Action onAdReadyListener) { this.onAdReadyListener = onAdReadyListener; if (Advertisement.IsReady(myPlacementId)) { onAdReadyListener?.Invoke(); } } public void OnUnityAdsReady(string placementId) { if (placementId == myPlacementId) { onAdReadyListener?.Invoke(); } }

OnUnityAdsReady() es un método de anulación proporcionado por el paquete UnityAds. Se invoca cuando un anuncio está listo para ser visto.

La idea aquí es registrar un oyente, pasando una Action como parámetro al método RegisterOnReadyListener() y almacenándolo como una variable miembro.

Si un anuncio está listo de inmediato, la Action se invocará de inmediato. Si el anuncio no está listo de inmediato, se invocará la Action cuando el paquete UnityAds invoque la devolución de llamada OnUnityAdsReady() .

Cada vez que se ve un anuncio, se OnUnityAdsReady() cuando el próximo anuncio esté listo para ser visto. Esto significa que la Action se invocará cada vez que un Anuncio esté listo.

Un par de consejos para este tema:

  • Unity limita a 25 anuncios que se muestran por día en un entorno de producción.
  • Android es muy estricto con la forma en que muestra anuncios, como dejar en claro que el usuario va a ver un anuncio y no mostrar más de 1 anuncio por "pantalla".
  • Si ve sus propios anuncios demasiadas veces en un entorno de producción, su cuenta se bloqueará. Puede controlar si se muestran Anuncios de prueba o Anuncios de producción desde el Panel de control de Unity para su proyecto. Esta opción anula cualquier opción de prueba que tenga en el código.
almost 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda