Skip to content Skip to sidebar Skip to footer

Disabilitare l’oscuramento dello schermo per inattività su dispositivi Android/iOS in giochi sviluppati con Unity

In alcuni contesti di videogiochi o applicazioni può essere necessario disabilitare l’oscuramento per inattività dello schermo, come ad esempio in cutscene, introduzioni o momenti in cui non vi è interazione con lo schermo da parte dell’utente.

Contrariamente a quanto si possa pensare, questa funzionalità non è presente di default nel comportamento di un applicativo compilato in Unity, ad esempio per Android o iOS, e va quindi gestito manualmente.
L’approccio più corretto risulta quindi quello di disattivare l’oscuramento dello schermo durante la sessione di gioco e ripristinarne il funzionamento di sistema una volta usciti dall’applicativo.

Per fare questo è necessario creare uno script che sia persistente tra le scene (DontDestroyOnLoad) e, sfruttando la funzione Awake() e la OnApplicationQuit(), gestire il comportamento, come nello script seguente:

public class PersistentManager : MonoBehaviour
{
    private void Awake()
    {
        // Assicura che questo oggetto persista tra le scene
        DontDestroyOnLoad(gameObject);
    }

    void Start()
    {
#if UNITY_ANDROID || UNITY_IOS
        Screen.sleepTimeout = SleepTimeout.NeverSleep;
#endif
    }

    void OnApplicationQuit()
    {
#if UNITY_ANDROID || UNITY_IOS
        Screen.sleepTimeout = SleepTimeout.SystemSetting;
#endif
    }
}

Copyright © Desdinova ® / PIVA 03799780162 / Non è una testata giornalistica.
Tutti i diritti riservati ai legittimi proprietari, anche ove non citati.