ab包 unity3d
2019-04-04 18:20:33 LANGZI7758521 阅读数 135

1.删除OpenWindow下IOS文件下的内容

2.

3.

4.OpenWindow打开ABPath

IOS文件夹压缩

2018-07-26 18:10:04 weixinyi21cn 阅读数 289

https://docs.unity3d.com/ScriptReference/PlayerSettings.html

public static bool stripEngineCode;

Description

Remove unused Engine code from your build (IL2CPP-only).

If this is enabled, unused modules and classes of the Unity Engine codebase will be removed in IL2CPP builds. This will result in smaller binary size. It is recommended to use this setting, however, you may want to disable it if you suspect this causes issues with your project. Note that byte code stripping of managed assemblies is always enabled for the IL2CPP scripting backend.

Strip engine code在build setting的other setting中,勾选可以让代码进行压缩,自动不打包没有用到的代码,比如一个2DUI游戏没有用到Rigidbody等物理类的组件,但是勾选这个选项后可能会导致个别项目进行到有些地方直接崩溃,使用时还请慎重考虑

2019-05-22 04:30:04 x73901 阅读数 24

项目建Editor文件夹,写工具,这里将“Excel转Txt”和“Txt转ab包”分开。

考虑到一般游戏中,Excel表格都会对应一种类型的对象,所以还需要在游戏加载,ab包被读出来时,生成对应类型的Obejct,并将他们放到集合里方便使用,以后需要更新这部分的功能。

using UnityEditor;
using UnityEngine;
using Excel;
using System.IO;
using System.Data;
using System.Text;
using System.Collections.Generic;

public class LoadTableTask : Editor
{
    private static string excelDirPath = System.Environment.CurrentDirectory + @"\TableExcel";//excel表路径
    private static string txtDirPath = Application.dataPath + @"\TableTxt";//txt目录路径\

    private static StringBuilder builder;

    /// <summary>
    /// 根据excel表生成txt文件
    /// </summary>
    [MenuItem("BuildAsset/GenerateTxtByExcel")]
    public static void GenerateTxt()
    {
        //遍历目录下的excel文件,读取,生成txt
        if (!Directory.Exists(excelDirPath))
        {
            //Debug.Log("项目路径下没有TableExcel文件夹");//对于不存在的目录,也可以在这里新建一个
            Directory.CreateDirectory(excelDirPath);
        }
        if (!Directory.Exists(txtDirPath))
        {
            //Debug.Log("没有TableTxt文件夹");
            Directory.CreateDirectory(txtDirPath);
        }

        LoadExcel();
    }

    private static void LoadExcel()
    {
        //读excel文件
        DirectoryInfo dirInfo = new DirectoryInfo(excelDirPath);
        FileInfo[] excelFiles = dirInfo.GetFiles();
        for (int i = 0; i < excelFiles.Length; i++)//遍历目录下每个表
        {
            try
            {
                IExcelDataReader reader = ExcelReaderFactory.CreateOpenXmlReader(File.Open(excelDirPath + @"\" + excelFiles[i].Name, FileMode.Open, FileAccess.Read, FileShare.Read));
                DataSet dataSet = reader.AsDataSet();//讲excel中的内容读成DataSet的形式
                TurnExcelToTxt(dataSet.Tables, excelFiles[i].Name);//这里注意传进去的文件名带.xlsx后缀,要在函数中处理一下
            }
            catch (IOException err)
            {
                Debug.LogError("文件" + excelFiles[i].Name + "被占用,请先关闭");
                Debug.LogError(err.Message);
            }
        }
    }

    /// <summary>
    /// 遍历每个表中的所有内容,这里只有sheet1的,如果有需要遍历其他sheet,可以改写
    /// </summary>
    private static void TurnExcelToTxt(DataTableCollection tables,string txtFileName)
    {
        DataTable table = tables[0];
        int colNum = table.Columns.Count;
        int rowNum = table.Rows.Count;

        if (builder == null)
            builder = new StringBuilder();
        
        string txtFilePath = txtDirPath + @"\" + txtFileName.Split('.')[0] + ".txt";
        if (File.Exists(txtFilePath))
            File.Delete(txtFilePath);

        for (int i = 0; i < rowNum; i++)
        {
            if (i == 2)//注释行不写进txt
                continue;

            for(int j = 0; j < colNum; j++)
                builder.Append(table.Rows[i][j].ToString()).Append('\t');

            builder.Append("\n");//读完一行换一行
        }
        File.AppendAllText(txtFilePath, builder.ToString(), Encoding.UTF8);//
        builder.Remove(0, builder.Length);
    }

    /// <summary>
    /// 打包成AssetBundle
    /// </summary>
    [MenuItem("BuildAsset/ToTextAssets")]
    public static void ToTextAssets()
    {
        DirectoryInfo dirInfo = new DirectoryInfo(txtDirPath);
        FileInfo[] txtFiles = dirInfo.GetFiles();
        AssetBundleBuild[] buildMap = new AssetBundleBuild[2];
        buildMap[0].assetBundleName = "tables";//要打包的资源名(ab包名)
        
        List<string> lst = new List<string>();

        for (int i = 0; i < txtFiles.Length; i++)//遍历目录下每个表
        {
            if (txtFiles[i].Name.EndsWith(".meta"))
                continue;

            try
            {
                lst.Add("Assets/TableTxt/" + txtFiles[i].Name);
            }
            catch (IOException err)
            {
                Debug.LogError(err.Message);
            }
        }
        string[] resources = new string[lst.Count];//不要.meta文件
        for (int i = 0; i < lst.Count && i < resources.Length; i++)
        {
            resources[i] = lst[i];
        }
        buildMap[0].assetNames = resources;//关联资源和ab包
        BuildPipeline.BuildAssetBundles("Assets/AssetBundles", buildMap,BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
        AssetDatabase.Refresh();
    }
}

关于表结构,有一行是注释,给策划用,程序在处理时不用考虑。

2017-12-17 18:51:38 qq_26074263 阅读数 447

本文主要分享 Unity3D调用Android Studio导出的aar包的 基本步骤以及一些容易出错的点

大致步骤(完整步骤以及细节待更新)
1. Android Studio项目进行一定的设置后Build Project
2. 通过解压缩软件打开aar包,进行一定修改,拖入Unity工程中的Plugins/Android/libs/目录下
3. C#通过AndroidJavaClass, AndroidJavaObject, 通过Call或者CallStatic方法调用aar包中的接口

2015-07-13 16:40:00 weixin_33928467 阅读数 15

原来难,转载请注明切换: http://blog.csdn.net/u012413679/article/details/26354715 ---- kosion


这里如果,你己经配置好了Unity3d的开发环境。而且导入了NGUI的资源包。我使用的是3.9版本号的。

1  创建button的图片精灵

 点击"NGUI" 菜单  -----> Create -----> Sprite

命名为 button


2 加入文本标签

点击" NGUI" 菜单-----> Create -----> Label

命名为 text


这里的Label ,要做为button的孩子


3 设置label的属性。例如以下图:



button的属性设置例如以下图所看到的:



效果例如以下图所看到的:



最后,不要忘记加入预包装控制部件

版权声明:本文博客原创文章。博客,未经同意,不得转载。

unity3d解压zip包

阅读数 3691

尝试了两种方法,通过不同的dll体现一、usingIonic.Zip;优点:简单明了。缺点:android上无法解压,ios未尝试代码://解压到指定目录using(ZipFilezip=newZipFile(path1+"/"+FileName+".zip")){zip.ExtractAll(path2);//for(inti=0;i/

博文 来自: cheng219101

unity3D导入导出资源包

阅读数 7320

一、导入外部资源包1、准备好你学要的资源包.unitypackage文件2、开始导入资源包3、选择你下载好的.unitypackage文件二、导入系统自带资源包1、Unity3D5.0以后系统没有自带系统资源包。2、Unity3D5.0之前的版本三、导出资源包           Unity3D资源包的导出和导入类似都在Assets菜单栏下的Ex

博文 来自: struggle_zcq

unity3d AssetBundles 资源包

阅读数 2287

AssetBundlesarefileswhichyoucanexportfromUnitytocontainassetsofyourchoice.Thesefilesuseaproprietarycompressedformatandcanbeloadedondemandinyourapplication.Thisallowsyo

博文 来自: u011212411

unity3d www下载资源包

阅读数 3861

先上几种打包代码,记住 BuildTarget.iPhone BuildTarget.Android 别混用了。usingUnityEngine;usingUnityEditor;publicclassExportAssetBundles:MonoBehaviour{ [MenuItem("Assets/BuildAssetBundleFromS

博文 来自: u011212411

Unity3D UnityWebRequest获取AssetBundle包

阅读数 2

由于UnityManual文档的UnityWebRequest相关api未更新,相关方法已经弃用。特写此博客记录最新的使用方法。旧的方法IEnumeratorInstantiateObject(){stringuri="file:///"+Application.dataPath+"/AssetBundles/"+asse...

博文 来自: qq_26468099
没有更多推荐了,返回首页