【问题标题】:Asset bundle Emission map not working on mobile Unity资产包发射贴图不适用于移动 Unity
【发布时间】:2022-09-21 17:23:50
【问题描述】:

我在 Unity 中创建了一个带有发射贴图的资产包,它在编辑器中运行良好,但是当我为移动设备构建时,除了发射贴图之外的所有东西都可以正常工作,但似乎发射贴图根本没有效果。这是创建资产包的代码,您可以在桌面上正常工作。

using UnityEditor;
using System.IO;
using UnityEngine;

public class CreateAssetBundles {

    public static string assetBundleDirectory = "Assets/AssetBundles/";

    [MenuItem("Assets/Build AssetBundles")]
    static void BuildAllAssetBundles() {

        //if main directory doesnt exist create it
        if (Directory.Exists(assetBundleDirectory)) {
            Directory.Delete(assetBundleDirectory, true);
        }
        
        Directory.CreateDirectory(assetBundleDirectory);
        
        //create bundles for all platform (use IOS for editor support on MAC but must be on IOS build platform)
        BuildPipeline.BuildAssetBundles(assetBundleDirectory,BuildAssetBundleOptions.None, BuildTarget.iOS);
        AppendPlatformToFileName("IOS");
        Debug.Log("IOS bundle created...");

        BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.Android);
        AppendPlatformToFileName("Android");
        Debug.Log("Android bundle created...");

        RemoveSpacesInFileNames();

        AssetDatabase.Refresh();
        Debug.Log("Process complete!");
    }

    static void RemoveSpacesInFileNames() {
        foreach (string path in Directory.GetFiles(assetBundleDirectory)) {
            string oldName = path;
            string newName = path.Replace(' ', '-');
            File.Move(oldName, newName);
        }
    }

        static void AppendPlatformToFileName(string platform) {
        foreach (string path in Directory.GetFiles(assetBundleDirectory)) {
            //get filename
            string[] files = path.Split('/');
            string fileName = files[files.Length - 1];

            //delete files we dont need
            if (fileName.Contains(".") || fileName.Contains("Bundle")) {
                File.Delete(path);
            } else if (!fileName.Contains("-")){
                //append platform to filename
                FileInfo info = new FileInfo(path);
                info.MoveTo(path + "-" + platform);
            }
        }
    }
}

【问题讨论】:

  • 您确定资产包已正确加载吗?你设置手机了吗BuildTarget?
  • BuildTarget.Android已经设置

标签: unity3d assetbundle


【解决方案1】:

我的问题是通过以下步骤解决的。

  1. 创建一个新的着色器图
  2. 在图中添加发射贴图。
  3. 现在创建资产包。
  4. 万拉!!!在职的

    由于某种原因,默认的统一着色器无法正常工作。

【讨论】:

    猜你喜欢
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多