【Unity 3 d】UnityにLightmappingを動的にロードする方法


Lightmappingのメリットはもちろん(レンダリング速度が速くて効果的)、以下が解決策です
一.まず、美術はA.Prefabをシーンに置いて光を当て、Lightmappingをレンダリングし、生成されたのはA_であると仮定する.Lightmapping.exr
二.そして、実行時にこのA.Prefabをロードします.この場合、Lightmappingはありません.Aモデルは花です.
三.対応するLightmappingをロードして追加
    static public void AddLightmappingTex(string lightmappingFile, int lightmappingIndex)
    {
        LightmapData[] lightmapArray = LightmapSettings.lightmaps;
        lightmapArray [lightmappingIndex].lightmapFar = Resources.Load(path) as Texture2D;      
        LightmapSettings.lightmaps = lightmapArray;
    }

四.A.PrefabオブジェクトのlightmapIndexの変更
    static public void SetLightmappingIndex(GameObject obj, int lightmappingIndex)
    {
        if (obj.renderer != null && obj.renderer.lightmapIndex != -1)
        {
            obj.renderer.lightmapIndex = lightmappingIndex;
        }

        int count = obj.transform.childCount;
        for (int i=0; i

大功を成し遂げる