使ってみよう! Unity RemoteSettings/Let's use Unity RemoteSettings

使ってみよう! Unity RemoteSettings/Let's use Unity RemoteSettings

2019/05/18 (Sat) に開催された「Unity の集い in 大阪」にて登壇した資料になります。

Appendix の各 URL は以下の通りです。

* RemoteSettings Manual

* English: https://docs.unity3d.com/Manual/UnityAnalyticsRemoteSettings.html
* Japanese: https://docs.unity3d.com/ja/current/Manual/UnityAnalyticsRemoteSettings.html
* Unity Services: https://developer.cloud.unity3d.com
* Unity Learning Materials: https://learning.unity3d.jp
* デモプロジェクト: https://github.com/monry/RemoteSettingsSample
* キッズスター学習帳: https://kidsstar-tbf.booth.pm/

7b13f432547b92d04c79b749adb535e0?s=128

Tetsuya Mori

May 18, 2019
Tweet

Transcript

  1. גࣜձࣾΩοζελʔ$50 ৿ɹ఩࠸ ࢖ͬͯΈΑ͏ʂ 6OJUZ3FNPUF4FUUJOHT  4BU 6OJUZͷू͍JOେࡕ

  2. ͜Μ͹Μ͸ʂ  

  3. w-5֓ཁ w3FNPUF4FUUJOHTͱ͸ʁ w3FNPUF4FUUJOHTͷ࢖͍ํ w·ͱΊ   ΞδΣϯμ

  4. w-5֓ཁ w3FNPUF4FUUJOHTͱ͸ʁ w3FNPUF4FUUJOHTͷ࢖͍ํ w·ͱΊ   ΞδΣϯμ ΠϚίί

  5. -5֓ཁ  

  6.   ࠓ೔ͷߨԋʹ͍ͭͯ -5֓ཁ εϥΠυ ಈը 6OJUZ-FBSOJOH.BUFSJBMT
 ʹͯެ։༧ఆ

  7. w6OJUZ3FNPUF4FUUJOHTΛ
 ஌Βc৮ͬͨ͜ͱ͕ ͳ͍ํ wϦϦʔεࡁͷΞϓϦͷڍಈΛ
 ΞϓϦΛߋ৽ͤͣʹมߋ͍ͨ͠ํ w8FC"1*ͷ࣮૷φγͰ
 Ϛελσʔλߋ৽Λ͍ͨ͠ํ   ࠓ೔ͷର৅ऀ

    -5֓ཁ
  8. w6OJUZ3FNPUF4FUUJOHTͷ
 ֓ཁͱ؆୯ͳ࢖͍ํ w࣮ࡍʹ3FNPUF4FUUJOHTΛ
 ࢖ͬͨσϞ࣮ԋ   ࠓ೔࿩͢ίτ -5֓ཁ

  9. wϚωλΠζͱབྷΊͨ 3FNPUF4FUUJOHTͷ࢖͍ํ wҟৗܥͷϋϯυϦϯάΛؚΊͨ
 ৄࡉͳ࣮૷ɾӡ༻ํ๏   ࠓ೔࿩͞ͳ͍ίτ -5֓ཁ

  10. ηΫγϣϯλΠτϧ w࢓ࣄגࣜձࣾΩοζελʔ$50 wग़਎࡛ۄݝ wډॅਆಸ઒ݝ wՈ଒࠺ɾ່ʢࡀϲ݄ʣ w6OJUZྺ೥໨ w!NPOSZ wBLB΋ΜΓ͌ઌੜ 10 ࣗݾ঺հ

    -5֓ཁ
  11.   ࣗݾ঺հ"XBSE -5֓ཁ w.JDSPTPGU.71
 GPS%FWFMPQFS5FDIOPMPHJFT w6OJUZ"NCBTTBEPS

  12.   ࣗݾ঺հ+PC -5֓ཁ ະबֶࣇʙখֶߍ௿ֶ೥޲͚ͷ ৬ۀମݧΞϓϦʮͬ͜͝ϥϯυʯΛ ೥Ҏ্ʹΘͨΓ։ൃɾӡӦ

  13. ηΫγϣϯλΠτϧ wΩοζελʔֶशா
 1JYJW#005)ʹͯ
 ޷ධൢചதʂ w"TTFU#VOEMF w։ൃൿ࿩ wւ֎ۈ຿ͷ͓࿩͠ wษڧձ։࠵ w"OESPJEࣗಈςετ w7FDUPS(SBQIJDT

    13 ࣗݾ঺հ13 IUUQTLJETTUBSUCGCPPUIQN -5֓ཁ
  14.   ࣗݾ঺հ13 -5֓ཁ #΋ͷϥδ ύʔιφϦςΟ΍ͬͯ·͢ʂ ήετืूதʂ

  15. w-5֓ཁ w3FNPUF4FUUJOHTͱ͸ʁ w3FNPUF4FUUJOHTͷ࢖͍ํ w·ͱΊ   ΞδΣϯμ ΠϚίί

  16. 3FNPUF4FUUJOHTͱ͸ʁ  

  17.   ֓ཁ 3FNPUF4FUUJOHTͱ͸ʁ

  18.   ֓ཁ 3FNPUF4FUUJOHTͱ͸ʁ 6OJUZ"OBMZUJDTαʔϏεͷ
 3FNPUF4FUUJOHTػೳΛ࢖༻͢Δͱɺ
 "OBMZUJDTμογϡϘʔυ͔Β௚઀ɺ
 ήʔϜ΍ΞϓϦέʔγϣϯͷม਺ΛมߋͰ͖·͢ɻ ग़ల6OJUZ.BOVBM

  19.   ֓ཁ 3FNPUF4FUUJOHTͱ͸ʁ ʮϦϦʔε࣌఺ͰͷΞΠςϜ
 ഉग़཰͸Ͱߦͧ͘ʔʯ J04 W J04 W

    J04 W "OESPJE W "OESPJE W     
  20.   ֓ཁ 3FNPUF4FUUJOHTͱ͸ʁ J04 W J04 W J04 W

    "OESPJE W "OESPJE W      ʮ޿ࠂଧͬͨ͠ɺഉग़཰্͛ͯ
 Ϣʔβఆணͤ͞Αɻʯ
  21.   ֓ཁ 3FNPUF4FUUJOHTͱ͸ʁ ʮ࠷৽൛ʹ্͛ͯཉ͍͔͠Β
 ࠷৽൛Ϣʔβͷഉग़཰্͛Αɻʯ J04 W J04 W

    J04 W "OESPJE W "OESPJE W     
  22.   ֓ཁ 3FNPUF4FUUJOHTͱ͸ʁ ʮफڭ্ͷཧ༝ʹΑΓ࠷৽൛ͷ
 J04ݶఆͰഉग़཰্͛Αɻʯ J04 W J04 W

    J04 W "OESPJE W "OESPJE W     
  23.   ֓ཁ 3FNPUF4FUUJOHTͱ͸ʁ w6OJUZ"OBMZUJDTͷ෦෼ػೳ wαʔό͔Β୺຤ʹઃఆ஋Λ౉ͤΔ wϢʔβηάϝϯτຖʹ஋ΛมߋՄೳ wΫϥΠΞϯταΠυ͸࣮૷ඞਢ w'JSFCBTF3FNPUF$POpHͱಉ͡

  24.   σϞ 3FNPUF4FUUJOHTͱ͸ʁ wཁ݅ wʮقઅʯͷઃఆ஋Λड͚औΔ w஋ʹԠͯ͡ςΩετ΍എܠ͕มΘΔ wඵʹճϙʔϦϯάͯ͠஋ߋ৽ w6OJUZGͰಈ࡞֬ೝ

  25. w-5֓ཁ w3FNPUF4FUUJOHTͱ͸ʁ w3FNPUF4FUUJOHTͷ࢖͍ํ w·ͱΊ   ΞδΣϯμ ΠϚίί

  26. 3FNPUF4FUUJOHTͷ࢖͍ํ  

  27.   6OJUZଆ 3FNPUF4FUUJOHTͷ࢖͍ํ

  28.   6OJUZ&EJUPSଆ 3FNPUF4FUUJOHTͷ࢖͍ํ ·ͩ6OJUZ4FSWJDFTʹϓϩδΣΫτ͕ͳ͍৔߹

  29.   6OJUZ&EJUPSଆ 3FNPUF4FUUJOHTͷ࢖͍ํ طʹ6OJUZ4FSWJDFTʹϓϩδΣΫτ͕͋Δ৔߹

  30.   6OJUZ&EJUPSଆ 3FNPUF4FUUJOHTͷ࢖͍ํ "OBMZUJDT͕0Oʹͳ͍ͬͯΕ͹0,ʂ

  31.   6OJUZ3FNPUF4FUUJOHTଆ 3FNPUF4FUUJOHTͷ࢖͍ํ 6OJUZ4FSWJDFTʹϩάΠϯͯ͠0QFSBUFλϒબ୒

  32.   6OJUZ3FNPUF4FUUJOHTଆ 3FNPUF4FUUJOHTͷ࢖͍ํ 1SPKFDUTର৅ϓϩδΣΫτΛબ୒

  33.   6OJUZ3FNPUF4FUUJOHTଆ 3FNPUF4FUUJOHTͷ࢖͍ํ 0QUJNJ[BUJPO3FNPUF4FUUJOHTΛબ୒

  34.   6OJUZ3FNPUF4FUUJOHTଆ 3FNPUF4FUUJOHTͷ࢖͍ํ ࠨ্ͷ؀ڥΛԡԼͯ͠։ൃ؀ڥ޲͚ʹ੾Γସ͑Δ

  35.   6OJUZ3FNPUF4FUUJOHTଆ 3FNPUF4FUUJOHTͷ࢖͍ํ "%%/&8,&:7"-6&ΛԡԼ

  36.   6OJUZ3FNPUF4FUUJOHTଆ 3FNPUF4FUUJOHTͷ࢖͍ํ Ωʔɺܕɺ஋Λೖྗͯ͠ʮอଘʯΛԡԼ

  37.   6OJUZ3FNPUF4FUUJOHTଆ 3FNPUF4FUUJOHTͷ࢖͍ํ 4:/$ϘλϯΛԡԼ

  38.   6OJUZ3FNPUF4FUUJOHTଆ 3FNPUF4FUUJOHTͷ࢖͍ํ ߋ৽ࣄ༝ͳͲΛॻ͍ͯʮ4:/$ʯΛԡԼ

  39.   ࣮૷ίʔυྫ 3FNPUF4FUUJOHTͷ࢖͍ํ using UnityEngine; using UnityEngine.UI; [RequireComponent(typeof(Text))] public

    class EmissionRatio : MonoBehaviour { private void Start() { GetComponent<Text>().text = RemoteSettings .GetFloat("EmissionRatio") .ToString(); } } 3FNPUF4FUUJOHTઃఆ஋औಘ GetBool() GetInt() GetFloat() GetString()
 ͳͲ͕ར༻Մ˞GetLong()͸࢖͑ͳ͍ͬΆ͍
  40.   ࣮૷ίʔυྫ 3FNPUF4FUUJOHTͷ࢖͍ํ using UnityEngine; public class GameController :

    MonoBehaviour { private void Start() { RemoteSettings.Completed += (wasUpdatedFromServer, settingsChanged, serverResponse) => { Debug.Log("更新されたよ!"); }; // UniRx.Observable.Interval() とかでポーリングしても良いかも? RemoteSettings.ForceUpdate(); } } 3FNPUF4FUUJOHTઃఆ஋ߋ৽
  41.   1SPT 3FNPUF4FUUJOHTͱ͸ʁ w&EJUPS্Ͱϙνϙνͯ͠ಋೖ׬ྃ w8FC"1*࣮૷ෆཁ w1MBZFSىಈ࣌ʹࣗಈͰߋ৽͞ΕΔ wແྉʂ

  42.   $POT 3FNPUF4FUUJOHTͱ͸ʁ w4FHNFOUT΁ͷ൓өʹʙ࣌ؒ wσʔλͷߋ৽͸1VMMܕ w1MBZFSىಈதͷߋ৽͸
 λΠτϧը໘΁ͷભҠͳͲΛ
 τϦΨʔʹForceUpdate()͕ඞཁ wRemoteSettings.GetLong()͸ະ࣮૷ʁ

  43.   ׆༻ྫ 3FNPUF4FUUJOHTͷ࢖͍ํ wΩϟϯϖʔϯ΍ΠϕϯτͳͲͷ
 ϑϥά؅ཧ w+40/ͳͲʹΑΔϚελσʔλ؅ཧ w"TTFU#VOEMFͷ 4JOHMF.BOJGFTUόʔδϣϯ؅ཧ

  44. w-5֓ཁ w3FNPUF4FUUJOHTͱ͸ʁ w3FNPUF4FUUJOHTͷ࢖͍ํ w·ͱΊ   ΞδΣϯμ ΠϚίί

  45. ·ͱΊ  

  46.   ·ͱΊ ·ͱΊ w3FNPUF4FUUJOHT͸ແྉʂ wαʔόαΠυ͸࣮૷ෆཁʂ wΫϥΠΞϯταΠυͷ࣮૷΋؆୯ʂ

  47.   "QQFOEJY ·ͱΊ w3FNPUF4FUUJOHT.BOVBM
 &OHMJTI+BQBOFTF w6OJUZ4FSWJDFT w6OJUZ-FBSOJOH.BUFSJBMT wσϞϓϩδΣΫτ wΩοζελʔֶशா

  48. 0OFNPSFUIJOHʜ  

  49.   13 0OFNPSFUIJOHʜ w೔ຊ"OESPJEͷձ6OJUZ෦
 Ͱ͸ٕज़ಉਓࢽ6/*#00,ͷ
 ڞಉࣥචऀΛઈࢍืूதͰ͢ʂ w6OJUZʹཱིͬͨ಺༰Ͱ͋Ε͹ԿͰ΋ 0,ͳͷͰɺؾܰʹ͝ࢀՃ͍ͩ͘͞ʂ

  50. 5IBOLZPVGPSZPVS BUUFOUJPO