AB包打包工具:一.自动设置AB包配置和生成Prefab

本文介绍了如何在Unity中实现AB包的自动化制作,包括自动设置AB配置、生成Prefab,以及处理动画、材质和预制体等资源。通过读取FBX动画、实例化GameObject创建Prefab,并配置AB包名和变体,实现一键化资源打包。此外,还涉及了对带Component属性的设置,如SkinnedMeshRender,以及动态效果资源的处理。
摘要由CSDN通过智能技术生成

是不是AB总需要手动制作?AB包工具不好用?我们来一起探讨吧,这一节我们先来制作怎么规划好AB文件的自动一键化制作AB的原始文件,其中包含的动画文件,材质文件,还有预制体。其实有一些功能我们是可以一键化自动生成的AB原始文件,例如动画,我们可以让美术做好带动画的fbx文件,我们读取fbx里面的动画生成动画文件 并且设置需要打成AB的名字和变体(variant)或者叫后缀

         /// <summary>
         /// 生成动画 和动画ab包设置
         /// </summary>
         static void ProduceAni()
         {
             if (Directory.Exists(PathConfig.PathAni))
             {
                 DirectoryInfo directoryInfo = new DirectoryInfo(PathConfig.PathAni);
                 // FileInfo[] files = directoryInfo.GetFiles("*");
                 FileInfo[] files = directoryInfo.GetFiles("*", SearchOption.AllDirectories);
                 // Debug.Log(files.Length);
                 for (int i = 0; i < files.Length; i++)
                 {
                     //忽略关联文件
                     if (files[i].Name.EndsWith(".meta") || files[i].Name.EndsWith(".mesh"))
                     {
                         continue;
                     }

                     Debug.Log("文件名:" + files[i].Name);
                     Debug.Log("文件绝对路径:" + files[i].FullName);
                     Debug.Log("文件所在目录:" + files[i].DirectoryName);
                     if (files[i].Name.EndsWith(".FBX") || files[i].Name.EndsWith(".fbx"))
                     {
                         var filesString = files[i].Name.Split('.')[0];
                         var path = PathConfig.PathResourcesAni + "/" + filesString;
                         // 创建文件夹
                         if (Directory.Exists(path + "_ani"))
                         {
                             Debug.Log("preafab所谓在的位置:" + path);
                             Debug.Log("preafab:" + path + "/" + filesString + ".prefab");
                             Debug.Log(path);
                             Directory.Delete(path + "_ani", recursive: true);
                             File.Delete(path + "_ani" + ".meta");
                         }

                         Directory.CreateDirectory(path + "_ani");

                         Debug.Log(PathConfig.PathAni + "/" +
                                   filesString); // AnimatorController animatorController = AnimatorController.CreateAnimatorControllerAtPath("Assets/Test.controller");
                         AnimatorController animatorController =
                             AnimatorController.CreateAnimatorControllerAtPath(path + "_ani" + "/" + filesString +
                                                                               "_ani" + ".controller");
                         Debug.Log(File.Exists(PathConfig.PathAni + "/" + files[i].Name));
                         Debug.Log(AssetDatabase.LoadAssetAtPath(PathConfig.PathAni + "/" + files[i].Name,
                             typeof(AnimationClip)) as AnimationClip);
                         AnimationClip src = AssetDatabase.LoadAssetAtPath(PathConfig.PathAni + "/" + files[i].Name,
                             typeof(AnimationClip)) as AnimationClip;
                 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俊24

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值