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

Addressables(¥¢¥É¥ì¥Ã¥µ¥Ö¥ë)


¡¡Æ±¤¸¥·¡¼¥ó¤òÆÉ¤ß¹þ¤â¤¦¤È¤¹¤ë¤È Exception ¥¨¥é¡¼¤Ë¤Ê¤ë

¥Þ¥Æ¥ê¥¢¥ë¤È¥·¥§¡¼¥À¡¼


¡¡¥×¥ì¥Õ¥¡¥Ö¤ò¥í¡¼¥É¤·¤ÆÀ¸À®¤·¤¿¤È¤­¡¢¥Þ¥Æ¥ê¥¢¥ë¤È¥·¥§¡¼¥À¡¼¤¬Àµ¾ï¤Ë¥¢¥µ¥¤¥ó¤µ¤ì¤Æ¤¤¤Æ¤â¥Ô¥ó¥¯¤Ë¤Ê¤ë¤È¤­¤¬¤¢¤ë¡£
¤½¤Î¾ì¹ç¤Ë¤Ï¡¢¥·¥§¡¼¥À¡¼¤Î¥Ç¥£¥ì¥¯¥È¥ê(¥¢¥É¥ì¥¹)¤ò»ØÄꤷ¤ÆºÆÅÙ¥¢¥µ¥¤¥ó¤¹¤ì¤ÐÀµ¾ï¤Ëɽ¼¨¤µ¤ì¤ë¡£


[SerializeField]
string shaderStr = "UI/Hidden/UI-Effect-Shiny";   // ¥Ç¥Ð¥Ã¥°¥í¥°¤Ç handle.Result.name ¤Ç½Ð¤¿Ì¾Á°¤Ë¤¹¤ë¡£¥·¥§¡¼¥À¡¼Ì¾¤Î¤ß¤Ç¤Ï¸«¤Ä¤«¤é¤Ê¤¤

public async UniTask LoadPrefabsAsync() {

    // °Í¸´Ø·¸¤ÎÆÉ¤ß¹þ¤ß
    var dependencies = Addressables.DownloadDependenciesAsync(skillDetailReference);
    await dependencies.Task;

    if (dependencies.Status == AsyncOperationStatus.Succeeded) {
        Addressables.LoadAssetAsync<GameObject>(skillDetailReference).Completed += async (obj) => {
        skillDetail = obj.Result;
        skillDetailPrefab = skillDetail.GetComponent<SkillDetail>();

        // °Í¸´Ø·¸¤È°ì½ï¤ËÆÉ¤ß¹þ¤Þ¤ì¤Æ¤¤¤ë¤¿¤á¡¢¤³¤ÎÉôʬ¤ÏÉÔÍ×
        //var handle = Addressables.LoadAssetAsync<Shader>(uiEffectShaderReference);
        //await handle.Task;
        //Debug.Log(handle.Result.name);

        skillDetail.GetComponent<UnityEngine.UI.Image>().material.shader = handle.Result;  // ¤³¤Ã¤Á¤À¤±¤À¤ÈŬÍѤˤʤé¤Ê¤¤¤Î¤Ç¡¢²¼¤Î½èÍý¤ò¤¹¤ë

        Shader shader = Shader.Find(shaderStr);
        if (shader != null) {
            skillDetail.GetComponent<UnityEngine.UI.Image>().material.shader = shader;
        } else {
            Debug.Log(shaderStr + ": ¥·¥§¡¼¥À¡¼¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£");
        }
    }
}

¡¡¤Þ¤¿¡¢¥Ó¥ë¥È¥¤¥ó¥·¥§¡¼¥À¡¼¤Î¾ì¹ç¤Ë¤Ï¡¢Project Settings Æâ¤Î Graphics ¤Î Always Included Shaders ¤ÎÀßÄê¤Ç¥·¥§¡¼¥À¡¼¤òÄɲä·¤Æ Save to Asset ¤¹¤ë¡£

¡ÚUnity¡ÛAssetBundle²½¤·¤¿Prefab¤Î¥·¥§¡¼¥À¡¼»²¾È¤¬²õ¤ì¤ë¸½¾Ý
https://appleorbit.hatenablog.com/entry/2015/10/25...




¾åµ­¤ÎÊä­


¡¡UI ¾å¤Ëɽ¼¨¤µ¤»¤ë¤¿¤á¤Î¥Ñ¡¼¥Æ¥£¥¯¥ë¤ËÀßÄꤷ¤Æ¤¤¤ë UI/Additive ¤Î¥·¥§¡¼¥À¡¼¤Ï¡¢¥¨¥Ç¥£¥¿¡¼¤À¤È¥Ô¥ó¥¯¤Ë¤Ê¤ë¤¬¡¢¼Âµ¡¤À¤È¤Á¤ã¤ó¤Èɽ¼¨¤µ¤ì¤ë¡£
³¤±¤Æ2Ì̤ˤ¤¤Ã¤¿¤éÇí¤²¤¿

¡¡¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥¢¥»¥Ã¥È¤Î¾ðÊó¤ÏÊÝ»ý¤µ¤ì¤ë
¤½¤Î¤¿¤á¥í¡¼¥É»þ´Ö¤â¼«Æ°Åª¤Ëû½Ì¤µ¤ì¤ë
¸½ºß ½é²ó¤Ï²»¤¬¤Ê¤ë¤Þ¤Ç¤ËÌó10Éᢥ²¡¼¥à²èÌ̽Фë¤Þ¤Ç¤Ë20ÉÃ
¼¡²ó°Ê¹ß¤ÏÌó5ÉäDz»¤¬¤Ê¤Ã¤Æ¡¢Â³¤±¤ÆÌó10Éäǥ²¡¼¥à²èÌ̤ˤʤë


¡¡³«Êü¤·¤Æ¤¤¤ë¥¹¥Æ¡¼¥¸¤òºÆÅÙ³ÍÆÀ¤·¤Æ¤·¤Þ¤¦
£²²óÌܰʹߡ¢¥Ñ¡¼¥Æ¥£¥¯¥ë¤À¤±Çí¤¬¤ì¤ë

¡¡=>¡¡Editor ¤À¤±¤ÎÌäÂê


¸¶°ø


¡¡Android ´Ä¶­¤Ç¤Î Shader ¤ÎŬÍѤˤʤë¤Î¤Ç¡¢¥¨¥Ç¥£¥¿¡¼¤Ç¼Â¹Ô¤·¤¿ºÝ¤Ë¥Ô¥ó¥¯¤Ë¤Ê¤ë¤Î¤ÏÌäÂê¤Ê¤·¡£
¾ï¤Ë¼Âµ¡¤Ç¥Æ¥¹¥È¤¹¤ë¤³¤È¡£

¡¡­¡¡¡Shader ¤òºÆÀßÄꤹ¤ë½èÍý¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¤¿¤¬¡¢¼Âµ¡¤Ç¤ÏÌäÂê¤Ê¤«¤Ã¤¿
¡¡­¢¡¡­¡¤Î½èÍý¤ò¤·¤Æ¤¤¤¿¾ì¹ç¡¢¼Âµ¡¤Ç¤Ï2²óÌÜ°Ê¹ß¤Ë Main ¥·¡¼¥ó¤ØÁ«°Ü¤·¤¿ºÝ¤Ë¥·¥§¡¼¥À¡¼¤¬³°¤ì¤Æ¥Ñ¡¼¥Æ¥£¥¯¥ë¤Î¤ß¥Ô¥ó¥¯¤Ë¤Ê¤ë¾É¾õ¤¬¤ß¤é¤ì¤¿¤¬¡¢
¡¡¡¡¡¡­¡¤Î½èÍý¤ò¤·¤Ê¤±¤ì¤Ð¡¢2²óÌܰʹߤǤâÌäÂê¤Ê¤¯¥Ñ¡¼¥Æ¥£¥¯¥ë¤Ë¤â Shader ¤¬Å¬ÍѤµ¤ì¤¿

¡¡°Ê¾å¤Î¤³¤È¤«¤é¡¢Addressables ¤Ë¤ª¤¤¤Æ Android ´Ä¶­¤Ç³«È¯¤¹¤ë¾ì¹ç¡¢¥¨¥Ç¥£¥¿¡¼¤Ç¤Î¥Ç¥Ð¥Ã¥°¤ÏÉÔÍס£
̵Íý¤Ë¥Ô¥ó¥¯¤ò½¤Àµ¤¹¤ëɬÍפâ¤Ê¤¤¡£


AssetReference.ToString () ¤È AssetGUID ÊÑ¿ô¤Ë¤Ä¤¤¤Æ


¡¡AssetReference.ToString () ¤È AssetGUID ÊÑ¿ô¤Ï¡¢GUID¤Î¾ðÊ󤬼è¤ì¤ë¡£¤½¤Î¤¿¤á¡¢¥¢¥µ¥¤¥ó¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤Ï¤Ê¤¤¡£

https://docs.unity3d.com/Packages/com.unity.addres...




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


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

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

Menu



¥×¥í¥°¥é¥à¤Î´ðÁóؽ¬

¥³¡¼¥ÉÎý½¬

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

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

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

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

3D¥À¥¤¥Ó¥ó¥°¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

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

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

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

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

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

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

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

3D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(ÇòÇ­É÷)

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

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

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

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

private



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

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