Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

FireBase¤Ë¥¢¥Ã¥×¤·¤¿²èÁü¥Ç¡¼¥¿¤òUnityÆâ¤Î¥Õ¥©¥ë¥À¤Ë¥À¥¦¥ó¥í¡¼¥É¤¹¤ë


¡¡FireBase¤ÈUnity¤ÎÏ¢·È¼«ÂΤˤĤ¤¤Æ¤Ï¸ø¼°¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
Unity ¥×¥í¥¸¥§¥¯¥È¤Ë Firebase ¤òÄɲ乤ë
https://firebase.google.com/docs/unity/setup?hl=ja

¡¡Unity¤ÎStreamingAssetsÆâ¤ËFireBase¤ËÅÐÏ¿¤·¤Æ¤¢¤ëPNG²èÁü¥Ç¡¼¥¿¤òTexture¤È¤·¤Æ¥À¥¦¥ó¥í¡¼¥É¤·¤Þ¤¹¡£



FireBaseDownLoader.cs

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹



¡ãApplication.dataPath¡ä


¡¡Unity ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Êݸ¤µ¤ì¤Æ¤¤¤ë¥Ñ¥¹¤ò¼èÆÀ¤·¤Þ¤¹¡£
¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ë¤è¤êÊݸÀ褬°Û¤Ê¤ë¤¿¤á¡¢¼Â¹Ô¤·¤¿¥Ç¥Ð¥¤¥¹¤Ë¤è¤ê¡¢¥Ñ¥¹¤Î¾ðÊó¤â°Û¤Ê¤ê¤Þ¤¹¡£

  // ¥í¡¼¥«¥ë¤Î¥Ñ¥¹(ÊݸÀè)¤Î»ØÄê
  string local_url = Application.dataPath + "/StreamingAssets/" + fileName + ".png";


»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Application.dataPath
https://docs.unity3d.com/ja/current/ScriptReferenc...
Qiita @w_yang ÍÍ
unity¤Çplatform¤Ë¤è¤Ã¤Æ¼èÆÀ¤Ç¤­¤ë¥Ñ¥¹
https://qiita.com/w_yang/items/8458cd790607d14b1b3...


¡ãFirebaseStorage.DefaultInstance¡ä


¡¡FireBase ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë API ¤Î£±¤Ä¤Ç¤¢¤ê¡¢FirebaseStorage ¥¯¥é¥¹¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Î£±¤Ä¤Ç¤¹¡£
¥Ç¥Õ¥©¥ë¥È¤Î Firebase.FirebaseApp ¤Ç½é´ü²½¤µ¤ì¤¿ FirebaseStorage ¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤·¡¢ÍøÍѤǤ­¤ë¾õÂ֤ˤ·¤Þ¤¹¡£

 // FirebaseStorage ¤Î½é´ü²½
 FirebaseStorage storage = FirebaseStorage.DefaultInstance;


»²¹Í¥µ¥¤¥È
Firebase ¥Þ¥Ë¥å¥¢¥ë
FirebaseStorage.DefaultInstance
https://firebase.google.com/docs/reference/unity/c...


¡ãFirebaseStorage.GetReferenceFromUrl¡ä

¡¡
¡¡FireBase ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë API ¤Î£±¤Ä¤Ç¤¢¤ê¡¢FirebaseStorage ¥¯¥é¥¹¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Î£±¤Ä¤Ç¤¹¡£
GetReferenceFromUrl ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢°ú¿ô¤Ç»ØÄꤷ¤¿ URL ¤ò»ØÄꤷÍøÍѤǤ­¤ë¾õÂ֤ˤ·¤Þ¤¹¡£Ìá¤êÃÍ¤Ï StorageReference ·¿¤Ë¤Ê¤ê¤Þ¤¹¡£

  // °ú¿ô¤Ç»ØÄꤷ¤¿ URL ¤ò»ØÄꤷÍøÍѤǤ­¤ë¾õÂ֤ˤ¹¤ë
  StorageReference gs_reference = storage.GetReferenceFromUrl("gs://"¼«Ê¬¤ÎFireBase¤Î¥¢¥É¥ì¥¹".appspot.com/"¥Õ¥©¥ë¥À̾¡£¤³¤³¤Ç¤ÏTexture/" + fileName + ".png");


»²¹Í¥µ¥¤¥È
Firebase ¥Þ¥Ë¥å¥¢¥ë
FirebaseStorage.GetReferenceFromUrl
https://firebase.google.com/docs/reference/android...


¡ãFirebase.Storage.StorageReference.GetFileAsync¡ä


¡¡FireBase ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë API ¤Î£±¤Ä¤Ç¤¢¤ê¡¢StorageReference ¥¯¥é¥¹¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Î£±¤Ä¤Ç¤¹¡£
GetFileAsync ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢ÈóƱ´ü½èÍý¤Ë¤è¤Ã¤Æ FireBase ¤«¤é¥Ç¡¼¥¿¤Î¥À¥¦¥ó¥í¡¼¥É¤ò¹Ô¤¤¡¢¥á¥½¥Ã¥É¤Î°ú¿ô¤Ç»ØÄꤷ¤¿¥Ñ¥¹¤Ë¥Ç¡¼¥¿¤òÊݸ¤·¤Þ¤¹¡£

¡¡Ìá¤êÃͤȤ·¤Æ Task ¤¬ÍÑ°Õ¤µ¤ì¤Æ¤ª¤ê¡¢½èÍý¤Î·ë²Ì¤òÄÌÃΤ¹¤ëµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
º£²ó¤Ï¤½¤Îµ¡Ç½¤òÍøÍѤ·¡¢¥À¥¦¥ó¥í¡¼¥É¤Ë¼ºÇÔ¤·¤Æ¤ª¤é¤º¡¢½èÍý¤Î¥­¥ã¥ó¥»¥ë¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î¤ß¡¢¥À¥¦¥ó¥í¡¼¥É¤ÎÀ®¸ù¤ò Debug.Log ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£

¡¡// FireBase¤«¤é¥Ç¡¼¥¿¤ò¥À¥¦¥ó¥í¡¼¥É¤·¡¢°ú¿ô¤Ç»ØÄꤷ¤¿¥í¡¼¥«¥ë¤Î¥Ñ¥¹(¥Õ¥©¥ë¥À)¤ËÆþ¤ì¤ë
¡¡gs_reference.GetFileAsync(local_url).ContinueWith(task => 
  {
¡¡¡¡¡¡// ½èÍý¤Ë¼ºÇÔ¤·¤Æ¤ª¤é¤º¡¢¤«¤Ä¡¢½èÍý¤ò¥­¥ã¥ó¥»¥ë¤·¤Æ¤¤¤Ê¤¤¾ì¹ç
  ¡¡¡¡if (!task.IsFaulted && !task.IsCanceled)
      {
         Debug.Log("File downloaded.");
         isLoad = false;
      }
  });


»²¹Í¥µ¥¤¥È
Firebase ¥Þ¥Ë¥å¥¢¥ë
Firebase.Storage.StorageReference.GetFileAsync
https://firebase.google.com/docs/reference/unity/c...


¥À¥¦¥ó¥í¡¼¥É¤·¤¿Texture²èÁü¤òUnityµ¯Æ°»þ¤ËTexture2D¡¢¤Þ¤¿¤ÏSprite¤ËÊÑ´¹¤·¤ÆÆɤ߹þ¤à


¡¡StreamingAssets¤Ë¤¢¤ë²èÁü¥Ç¡¼¥¿¤òÆɤ߹þ¤ß¤Þ¤¹¡£Æɤ߹þ¤àºÝ¤Ë¤Ï¥Ñ¥¹¡ÊStreamingAssetsÆâ¡Ë¤ò»ØÄꤷ¤Þ¤¹¡£



TextureLoader.cs

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹



¡ãFile.ReadAllBytes ¥á¥½¥Ã¥É¡ä


¡¡°ú¿ô¤Ë»ØÄꤷ¤¿¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò³«¤­¡¢¥Õ¥¡¥¤¥ë¤ÎÆâÍƤò¥Ð¥¤¥ÈÇÛÎó¤ËÆɤ߼è¤Ã¤¿¸å¡¢¥Õ¥¡¥¤¥ë¤òÊĤ¸¤Þ¤¹¡£

  // ¥í¡¼¥É¤·¤¿¤¤¥Õ¥¡¥¤¥ë¤Î¤¢¤ë¥í¡¼¥«¥ëÆâ¤Î¥Ñ¥¹¤ò»ØÄê
  string local_url = Application.dataPath + "/StreamingAssets/" + "¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Õ¥¡¥¤¥ë¤Î̾Á°¤ò»ØÄꤷ¤Þ¤¹" + ".png";

  // ¥Õ¥¡¥¤¥ë¤ò¥Ð¥¤¥ÈÇÛÎó¤ËÆɤ߼è¤ë
  byte[] imgData = File.ReadAllBytes(local_url);


»²¹Í¥µ¥¤¥È
MicroSoft
File.ReadAllBytes
https://docs.microsoft.com/ja-jp/dotnet/api/system...


¡ãImageConversion.LoadImage ¥á¥½¥Ã¥É¡ä


¡¡PNG / JPG¡Ê¤Þ¤¿¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë·Á¼°¡Ë¤Î²èÁü¤Î¥Ð¥¤¥ÈÇÛÎó¤ò¥Æ¥¯¥¹¥Á¥ã(Texrue2D ·¿)¤Ë¥í¡¼¥É¤·¤Þ¤¹¡£
°ú¿ô¤Ë¤Ï²èÁü¥Ç¡¼¥¿¤Î¥Ð¥¤¥ÈÇÛÎó¤È¡¢¥Ô¥¯¥»¥ë¥Ç¡¼¥¿¤ÎÆɤ߹þ¤ßµö²ÄÀßÄê¤ò bool ·¿(½é´üÃÍ¤Ï false)¤ò»ØÄꤷ¤Þ¤¹¡£

  // ¥Ð¥¤¥ÈÇÛÎó¤Î¾ðÊó¤ò¥Æ¥¯¥¹¥Á¥ã¤ËÊÑ´¹
  texture.LoadImage(imgData, false);


»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
ImageConversion.LoadImage
https://docs.unity3d.com/ja/current/ScriptReferenc...


¡ãSprite.Create ¥á¥½¥Ã¥É¡ä


¡¡¥Æ¥¯¥¹¥Á¥ã¤ò¸µ¤Ë¡¢¿·¤·¤¤ Sprite ¤òºîÀ®¤¹¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£°ú¿ô¤Î¥ª¡¼¥Ð¡¼¥í¡¼¥É¤¬Ê£¿ôÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¡¡// ¥Æ¥¯¥¹¥Á¥ã¤ò¸µ¤Ë Sprite ¤ò¿·µ¬ºîÀ®¡£¥µ¥¤¥º¤È Pivot ¤ò»ØÄê
  sprite = Sprite.Create(texture, new Rect(0.0f, 0.0f, texture.width, texture.height), new Vector2(0.5f, 0.5f));


»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Sprite.Create
https://docs.unity3d.com/jp/current/ScriptReferenc...



¡¡°Ê¾å¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ³Îǧ¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu



´ðÁÃ

µ»½Ñ/Ãμ±(¼ÂÁõÎã)

3D¥¢¥¯¥·¥ç¥ó¥²¡¼¥à

2D¤ª¤Ï¤¸¤­¥²¡¼¥à(ȯŸÊÔ)

2D¶¯À©²£¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

2D¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°(³ÈÄ¥ÊÔ)

¥ì¡¼¥¹¥²¡¼¥à(È´¿è)

2DÊüÃÖ¥²¡¼¥à(ȯŸÊÔ)

3D¥ì¡¼¥ë¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°(±þÍÑÊÔ)

3Dæ½Ð¥²¡¼¥à(È´¿è)

2D¥ê¥¢¥ë¥¿¥¤¥à¥¹¥È¥é¥Æ¥¸¡¼

3D¥¿¥Ã¥×¥¢¥¯¥·¥ç¥ó(NavMeshAgent »ÈÍÑ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥«¥¨¥ë¤Î°Ù¤Ë¡Á¡¢¥Ü¥³¥¹¥«¥¦¥©¡¼¥ºÉ÷)

VideoPlayer ¥¤¥Ù¥ó¥ÈϢư¤Î¼ÂÁõÎã

VideoPlayer ¥ê¥¹¥ÈÆ⤫¤é¥à¡¼¥Ó¡¼ºÆÀ¸¤Î¼ÂÁõÎã(ȯŸ)

AR ²èÁüÉÕ¤­¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Î¼ÂÁõÎã

AR ¥ê¥¹¥ÈÆ⤫¤éÀ¸À®¤Î¼ÂÁõÎã(ȯŸ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥µ¥Ð¥¤¥Ð¡¼É÷)

private



¤³¤Î¥µ¥¤¥ÈÆâ¤ÎºîÉʤϥæ¥Ë¥Æ¥£¤Á¤ã¤ó¥é¥¤¥»¥ó¥¹¾ò¹à¤Î¸µ¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹