Search Unity

  1. Get all the Unite Berlin 2018 news on the blog.
    Dismiss Notice
  2. Unity 2018.2 has arrived! Read about it here.
    Dismiss Notice
  3. We're looking for your feedback on the platforms you use and how you use them. Let us know!
    Dismiss Notice
  4. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  5. Improve your Unity skills with a certified instructor in a private, interactive classroom. Learn more.
    Dismiss Notice
  6. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  7. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  8. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Remote Settings, update handler NOT always dispatched?

Discussion in 'Unity Analytics' started by Matthewek, Apr 3, 2018.

  1. Matthewek


    Apr 6, 2015
    Hello, I am in a process of implementing Remote Settings into my new game, however after testing on Android (Unity 2017.3) I have noticed update handler is NOT always dispatched. Documentation says:

    I am using development mode in remote settings,

    Code (CSharp):
    1. void Start()
    2. {
    3.     adDelay = defaultAdDelay;
    4.     adMain = defaultAdMain;
    5.     adOnExit = defaultAdOnExit;
    6.     adMediate = defaultAdMediate;
    8.     RemoteSettings.Updated += new RemoteSettings.UpdatedEventHandler(HandleRemoteSettingsUpdate);
    9. }
    11. private void HandleRemoteSettingsUpdate()
    12. {
    13.     adDelay = RemoteSettings.GetFloat("adDelay", defaultAdDelay);
    14.     adMain = RemoteSettings.GetInt("adMain", defaultAdMain);
    15.     adOnExit = RemoteSettings.GetBool("adOnExit", defaultAdOnExit);
    16.     adMediate = RemoteSettings.GetBool("adMediate", defaultAdMediate);
    17.     nextToDisplay = GetAdvertType(adMain);
    18.     Debug.Log("[AD MANAGER] handled remote update");
    19. }
    Unfortunately on android device, update is often not dispatched, is that stable feature or I am doing something wrong?


    What I also noticed, that even after settings were fetched once from the server (update fire) and I closed the app, opened it again (no update fired) thus not cached (previously fetched) settings but default were used.
    Last edited: Apr 3, 2018
  2. ap-unity


    Unity Technologies

    Aug 3, 2016

    I would recommend this code:

    Code (CSharp):
    1. void Start()
    2. {
    3.     RemoteSettings.Updated += new RemoteSettings.UpdatedEventHandler(HandleRemoteSettingsUpdate);
    4.     HandleRemoteSettingsUpdate();
    5. }
    7. private void HandleRemoteSettingsUpdate()
    8. {
    9.     adDelay = RemoteSettings.GetFloat("adDelay", defaultAdDelay);
    10.     adMain = RemoteSettings.GetInt("adMain", defaultAdMain);
    11.     adOnExit = RemoteSettings.GetBool("adOnExit", defaultAdOnExit);
    12.     adMediate = RemoteSettings.GetBool("adMediate", defaultAdMediate);
    13.     nextToDisplay = GetAdvertType(adMain);
    14.     Debug.Log("[AD MANAGER] handled remote update");
    15. }
    The basic change is calling HandleRemoteSettingsUpdate from within Start, which would ensure the variables are set with the last values received and if no config file exists on disk, they will be set with the default values.
    Matthewek likes this.