unity3d 程序文件后缀_后缀unity3d文件 - CSDN
  • Unity 文件后缀

    2017-09-12 11:45:01
    需要统计Unity文件后缀 所以自己查看了一下 一共包含以下 (有漏掉的小伙伴可以通知我加上) .vs .exe .sln .csproj .meta .txt .txt.meta .dll .xml .mdb .cs .unity .so .pdf .ttf .asset .svm ...

    因为公司系统有限制  

    需要统计Unity文件后缀 所以自己查看了一下  

    一共包含以下 (有漏掉的小伙伴可以通知我加上)

    .vs
    .exe
    .sln
    .csproj
    .meta
    .txt
    .txt.meta
    .dll
    .xml
    .mdb
    .cs
    .unity
    .so
    .pdf
    .ttf
    .asset
    .svm
    .yml
    .prefab
    .mjpeg
    .dat
    .json
    .log
    .db
    .prefs
    .dwlt
    .buildreport
    .cache
    .res


    展开全文
  • 今天我们来说说通过反编译Unity3D的AssetBundle来提取游戏资源,博主写这篇文章的目的并非是要教大家如何去破解一款基于Unity3D引擎开发的游戏,而是想通过今天这篇文章来告诉大家如何在开发Unity3D游戏的过程中保护...

    各位朋友,大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是http://www.qinyuanpei.com。今天我们来说说通过反编译Unity3D的AssetBundle来提取游戏资源,博主写这篇文章的目的并非是要教大家如何去破解一款基于Unity3D引擎开发的游戏,而是想通过今天这篇文章来告诉大家如何在开发Unity3D游戏的过程中保护自己的游戏资源。

    漫话Unity3D的AssetBundle

    对于AssetBundle,其实博主是在以前的文章中是有提到的。不知道大家还记不记得,博主曾经在写游戏开发和Lua的不解之缘这个系列文章的时候,提到并且使用过AssetBundle这种技术。具体来说呢,AssetBundle在Unity3D中是一种用于资源打包盒资源动态加载的解决方法,比如我们平时玩的单机游戏容量一般都比较大,这是因为制作人员在制作游戏的时候将所有的项目资源都整合到了一起。可是如果我们用AssetBundle来做这个游戏的话,我们就可以只在发布的游戏中提供支持游戏功能的核心部分,而将游戏当中的场景、模型等资源以AssetBundle的形式打包然后放到服务器上,这样当游戏客户端处于联网的时候就可以从服务器上下载这些资源,从而实现游戏资源的动态加载,由此可见AssetBundle可以帮助我们减少游戏的容量。如果是在需要安装包的场合下,那么游戏包容量的大小无疑会为游戏加些印象分。

    为什么这幅图总让我想起仙剑四里四人在即墨那晚的时光呢?

    比如最近《轩辕剑6外传穹之扉》这部单机游戏发布了,从各大游戏网站的评测到和一样我喜欢单机游戏的各位朋友们的亲身体验,大家一致的认为这部游戏整体表现还不错,应该考虑玩一玩。这样难免让博主有些心动,可是看到17个G的游戏容量时还是犹豫了下。DOMO小组从《轩辕剑6》就开始使用Unity3D引擎,在经历了第一部游戏的失败后,或许此次DOMO小组会将游戏优化的比较好吧。这里如果有喜欢单机游戏的朋友不妨去玩玩看,毕竟我们学习游戏开发的初衷就是做出好游戏,如果不热爱游戏又怎么能做出好游戏呢?好了,扯得有点远了,这里我们注意到一个重要的因素就是游戏容量,如果DOMO采用AeestBundle的话,游戏的容量肯定会减少很多。可是这样一来,它就不是单机游戏了嘛,对吧!

    在Unity3D中AssetBundle是专业版中的一个功能,在免费版的Unity3D中是无法使用这个功能的,不知道在Unity5中这个功能是不是划分到了个人版中。好了,下面我们来看看如何使用AssetBundle。我们主要从使用AssetBundle打包和加载AssetBundle这两个方面来说:

    使用Assetbundle打包

    使用AssetBundle打包主要通过BuildPipeline.BuildAssetBundle()这个方法来实现,该方法原型为:

    bool BuildAssetBundle (Object mainAsset,Object[] assets,string pathName, BuildAssetBundleOptions 
    optionsBuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets,
    BuildTarget targetPlatform= BuildTarget.WebPlayer)  

    在这个方法中,第一个参数是一个Object类型,表示一个激活的物体;第二个参数是一个Object[]类型,表示所有选中的物体;第三个参数是一个string类型,表示要导出的资源包的路径,资源包的扩展名可以是assetbundle或者unity3d;第四个参数表示的是打包选项,默认是完全打包和依赖打包。这里重点解释下这两个概念,完全打包是指所有资源都参与打包,比如说一个模型带有贴图和动画,那么打包模型的时候贴图和动画都会被作为资源打包。而依赖打包是相对于Prefab来说的,比如说PrefabA中引用了PrefabB这个对象,那么打包的时候这两个对象都会被打包,并且它们之间的这种依赖关系会在打包后继续保持;第五个参数是平台的选择,因为Unity3D是一个跨平台的游戏引擎,而各个平台现在的情况又不尽相同,因此现在Unity3D采取的方案是各个平台只能使用自己平台对应的AssetBundle,这一点希望大家在使用的时候注意啊。好了,现在我们来看一个简单的例子:

        /// <summary>
        /// 输出AssetBundle
        /// </summary>
        /// <param name="type">平台类型</param>
        static void ExportToAssetBundle(ExportType type,BuildTarget target)
        {
            //获取存储路径
            string savePath=EditorUtility.SaveFilePanel("输出为AssetBundle","","New Resource","unity3d");
            if(savePath==string.Empty) return;
            //获取选中的对象
            Object[] selection=Selection.GetFiltered(typeof(Object),SelectionMode.DeepAssets);
            if(selection.Length==0) return;
            //打包
            if(type==ExportType.All){
              BuildPipeline.BuildAssetBundle(null,selection,savePath,BuildAssetBundleOptions.CollectDependencies,target);
            }else{
                BuildPipeline.BuildAssetBundle(obj,null,savePath,BuildAssetBundleOptions.CollectDependencies,target);
            }
        }

    这是一个简单的导出AssetBundle资源包的方法,它有两个参数,第一个参数表示是一个枚举类型,定义为ExportType,取Single时表示打包一个特定的激活物体,比如说一个模型、一个场景等等;取All时表示打包所有选中的物体,比如一个场景。第二个参数表示打包的平台,这个不用多说了。因为博主的免费版的Unity3D不支持AssetBundle,所以这里没法给大家演示了,具体效果请自行测试,有问题的话给博主留言就是了。

    加载AssetBundle

    加载AssetBundle是一个从网络中下载资源的过程,因此需要使用Unity3D的WWW功能,这是一个简单的网络协议的封装,可以像浏览器一样访问某个URL地址或者是本地地址,访问WEB地址需要使用HTTP协议,访问本地地址需要使用File协议。我们来看一个具体的例子:

        /// <summary>
        /// 加载一个unity3d格式的文件
        /// WEB地址——http://server.com/xxx.unity3d
        /// 本地地址——file://.unity3d文件的绝对路径
        /// </summary>
        IEnumerator LoadUnity3DFile(string url)
        {
            WWW www=new WWW(url);
            yield return www;
            if(www.error!=null){
                Debug.Log(www.error);
            }else{
               AssetBundle bundle=www.assetBundle;
              Instantiate(bundle.mainAsset,Vector3.zero,Quaternion.identity);
            }
        }

    在这里我们直接使用bundle.assetBundle获取了全部的资源,如果只需要获取资源中的一部分,则只需要通过bundle.Load()方法就可以了,这里需要传入资源的名称。当我们使用完资源后可以通过bundle.Unload()方法来卸载资源,达到释放内存的目的。

    从反编译《新仙剑OL》看AssetBundle打包

    好了,下面我们以《新仙剑OL》这款游戏的AssetBundle的反编译来探索下在使用AssetBundle打包应该注意哪些问题。《新仙剑OL》这款游戏呢,是采用Unity3D引擎开发的一款横跨客户端游戏和网页游戏的网络游戏,游戏以《仙剑奇侠传》初代游戏剧情为主,玩家将第三人称视角再次跟随主人公展开一段荡气回肠的感人故事。这款游戏总体来说还不错吧,因为毕竟是网游,我们不能用单机游戏的视角去评价,具体的原因大家都是知道的。

    好了,为什么我们要选择这款游戏呢?
    * 第一,这款游戏的客户端只有30余M,体积小适合拿来研究(这就是AssetBundle的好处啊)* 第二,博主是一位仙剑玩家,一直希望有一天《仙剑奇侠传1》能够用3D技术重现,这个游戏满足了博主的好奇心
    * 第三,网络上已经有朋友对这个游戏的打包进行了研究,这里感谢网友朋友提供部分.unity3d文件及相关文件。

    我们选择的解包工具是一款叫做disunity的命令行工具,经过博主的尝试,这个工具真心强悍啊,可以解开.unity3d文件和.assets文件,可以拿到的数据形式有贴图、声音、模型等。具体的情况大家可以在稍后看到。

    首先我们找到《新仙剑OL》的安装目录,然后我们就能发现一个叫做assetbundles的文件夹,这是怕大家不知道吗?这太明显了吧!我们打开文件夹会发现Charachers、NPC、Scene等等文件夹,继续往下找我们发现了好多的.unity3d文件,不过这些文件都是以.unity3d然后跟些随机字符串的形式存在的。根据网友朋友们的提示,这些文件就是.unity3d文件,不过游戏制作组为了干扰我们故意接了下随机字符在后面(呵呵,还有比这更弱的加密方式吗?)。博主看到这里的第一感觉就是想先用加载AssetBundle的方式来看看能不能将这些AssetBundle读取出来,因此果断改了文件扩展名,然后开始在Unity3D中读取,结果程序报错看来是我们想的简单了啊。没办法的办法,强行解包吧!在命令行中输入:

    disunity extract C:\Users\Robin\Desktop\s049.unity3d

    接下来程序会在桌面上生成一个上s049的文件夹,打开文件夹一看,尼玛,竟然直接拿到了模型的网格数据(.obj)和贴图数据(.dds)以及相关的Shader。这让我突然间有点不能接受啊,马上打开Blender将网格数据导入,结果童年的林月如就出现在了我们的面前:

    林月如灰模

    因为博主不会在Blender中给模型贴图,所以我们到Unity3D中完成贴图,首先需要将模型导出为FBX格式。好了,将模型导入Unity3D后,将贴图赋给模型,童年的林月如就闪亮登场了,哈哈!

    林月如贴图效果

    好了,再来一张,不过这张没有贴图,需要大家自己来辨别这是谁啊,哈哈!

    柳梦璃灰模

    通过disunity这个工具我们还能获取更多的资源,剩下的内容就由大家自己去探索吧。通过这部分的研究,我们可以总结出以下观点,希望大家在使用AsssetBundle这项技术时注意:
    * 尽量在一个AssetBundle中打包多个资源,这样做的好处是别人没法通过加载AssetBundle拿到你做好的Prefab。
    * 尽量将一个预制件分割成不同的部分分别存放,这样做的好处是即使别人拿到了你的预制件却是不完整的。
    * 尽量利用动态脚本来加载场景而不是将整个场景打包,即使将整个场景打包,要把贴图和模型分开放置(因此如此,我虽然拿到了游戏的场景贴图,可是没有用啊)
    * 尽量利用加密的方法来隐藏本地的AssetBundle或者使用不易察觉的存储位置作为AssetBundle的存储位置,不要用明文数据进行存储。

    好了,今天的内容就是这样了,希望大家喜欢,AssetBundle打包是一个值得去深入研究的问题,今天博主提出的这些观点不过是对《新仙剑OL》这个游戏的打包提出de一些看法,如果大家有不同的看法,欢迎一起来交流!

    展开全文
  • http://www.cnblogs.com/hejianchun/articles/3089543.html

    1.首先我们把这段代码拷贝下来,放进工程,不要托给任何物体,就放在那不要理它。

    using UnityEngine;
    using UnityEditor;
    public class ExportAssetBundles {
        [MenuItem("Export/Build AssetBundle From Selection - Track dependencies")]
        static void ExportResource () {
            // Bring up save panel
            string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d");
            if (path.Length != 0) {
                // Build the resource file from the active selection.
            Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);
                BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets);
                Selection.objects = selection;
            }
        }
        [MenuItem("Export/Build AssetBundle From Selection - No dependency tracking")]
        static void ExportResourceNoTrack () {
            // Bring up save panel
            string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d");
            if (path.Length != 0) {
                // Build the resource file from the active selection.
                BuildPipeline.BuildAssetBundle(Selection.activeObject, Selection.objects, path);
            }
        }
    }
    我们仔细看一下,其实打包的.unity3d格式的文件也类似assenbundle,只不过是换了个不同的后缀名而已。

    当我们创建完,保存好后我,我们会发现菜单的导航栏多了这2项

     

    2.我们在选中我们需要打包的预设物体(也即是Prefab)。然后选中上面的第一项进行打包成.unity3d格式的文件。如图

     

    3.设置名字,路径等(路径很重要,待会加载会用到。)如图:

    4.刷新下。你就会看见这个了:

    这个就是我们打包后动态加载的内容。

     

    5. 现在我来说下怎么动态加载它吧,直接上代码

    using UnityEngine;
    using System.Collections;
    using System.IO;
    
    public class LoadUnity3d : MonoBehaviour
    {
    
        // Use this for initialization
        void Start()
        {
    
            StartCoroutine(LoadScene());
    
        }
    
        // Update is called once per frame
        void Update()
        {
    
        }
    
        IEnumerator LoadScene()
        {
            //文件路径,也就是我们打包的那个
            WWW www = new WWW("file:///" + Application.dataPath + "/Bundles/My Prefab.unity3d");
            yield return www;
            Instantiate(www.assetBundle.mainAsset);
        }
    }

    6.我们再新建一个空物体,讲我们这个脚本托给他,运行,你就能看见我们的预设也加载出来了。

      效果如下:

     


    展开全文
  • 有些特殊后缀名的文件unity里是不可识别的。如下图所示,这里我把文本的后缀改成了*.xx 这样unity就不认识了。那么双击就没反应了,我想做的就是在双击此类文件的时候指定一个应用程序打开它。代码中我指定了用...

    有些特殊后缀名的文件在unity里是不可识别的。如下图所示,这里我把文本的后缀改成了*.xx 这样unity就不认识了。那么双击就没反应了,我想做的就是在双击此类文件的时候指定一个应用程序打开它。


    代码中我指定了用sublime来打开后缀是.xx的文件。

    using UnityEngine;
    using UnityEditor;
    using UnityEditor.Callbacks;
     
    public class MyAssetHandler
    {
     
        [OnOpenAssetAttribute(1)]
        public static bool step1(int instanceID, int line)
        {
           //string name = EditorUtility.InstanceIDToObject(instanceID).name;
           // Debug.Log("Open Asset step: 1 (" + name + ")");
            return false; // we did not handle the open
        }
     
        // step2 has an attribute with index 2, so will be called after step1
        [OnOpenAssetAttribute(2)]
        public static bool step2(int instanceID, int line)
        {
     
            string path = AssetDatabase.GetAssetPath(EditorUtility.InstanceIDToObject(instanceID));
            string name = Application.dataPath + "/" + path.Replace("Assets/", "");
     
     
            if (name.EndsWith(".xx"))
            {
                System.Diagnostics.Process process = new System.Diagnostics.Process();
                System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
                startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                startInfo.FileName = "D:/Program Files/Sublime Text 3/sublime_text.exe";
                startInfo.Arguments = name;
                process.StartInfo = startInfo;
                process.Start();
                return true;
            }
           // Debug.Log("Open Asset step: 2 (" + name + ")");
            return false; // we did not handle the open
        }
    }
    这样就OK啦。在双击的时候sublime就打开啦。


    展开全文
  • Unity3D学习笔记(2)Unity3D与3DMax结合开发注意事项 单位:比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序...

    Unity3D学习笔记(2)


    Unity3D与3DMax结合开发注意事项


    • 单位:比例统一

    1. 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例。统一单位为米。

    • 模型规范

    1. 所有角色模型最好站立在原点。没有特定要求下,必须以物体对象中心为轴心。
    2. 面数的控制。移动设备每个网格模型控制在300-1500个多边形将会达到比较好的效果。 而对于桌面平台,理论范围1500-4000。如果游戏中任意时刻内屏幕上出现了大量的角色,那么就应该降低每个角色的面数。比如,半条命2对于每个角色使用2500-5000个三角面。
    3. 整理模型文件,仔细检查模型文件,尽量做到最大优化,看不到的地方不需要的面要删除,合并断开的顶点,移除孤立的顶点,注意模型的命名规范。模型给绑定之前必须做一次重置变换。

    • 材质贴图规范

    1. 我们目前使用的unity3d软件作为仿真开发平台,该软件对模型的材质有一些特殊的要求,在我们使用的3dsMax中不是所有材质都被Unity3D软件所支持,只有standard(标准材质)和Multi/Sub-Objiect(多维/子物体材质)被Unity3D软件所支持。注:Multi/Sub-Objiect(多维/子物体材质)要注意里面的子材质必须为standard(标准材质)才能被支持。
    2. Unity3D目前只支持Bitmap贴图类型,其它所有贴图类型均不支持。只支持DiffuseColor(漫反射)同self-Illumination(自发光,用来导出lightmap)贴图通道。 Self-Illumination(不透明)贴图通道在烘焙lightmap后,需要将此贴图通道channel设置为烘焙后的新channel,同时将生成的lightmap指向到self-Illumination。

    • 贴图文件格式和尺寸

    1. 原始贴图不带通道的jpg,带通道的为32位tga或者 png,尺寸最大别超过2048,贴图文件尺寸须为2的N次方 (8、16、32、64、128、256、512、1024)最大贴图尺寸不能超过1024x1024,特殊情况下尺寸可在这些范围内做调整。

    • 贴图材质应用规则

    1. 贴图不能为中文命名,不能有重名;
    2. 材质球命名与物体名称一致,材质球的父子层级的命名必须一致;
    3. 同种贴图必须使用一个材质球;
    4. 除需要用双面材质表现的物体之外,其他物体不能使用双面材质;
    5. 材质的ID和物体的ID号必须一致;
    6. 若使用completemap烘焙,烘焙完毕后会自动产生一个shell材质,必须将shell材质变为standard标准材质,并且通道要一致,否则不能正确导出贴图;
    7. 带Alpha通道的贴图存储为tga或者png格式,在命名是必须加_al以区分。
    8. 模型需要通过通道处理时需要制作带有通道的纹理,在制作树的通道纹理是,最好将透明部分改为树的主色,这样在渲染是可以使有效边缘部分的颜色正确,通道纹理在程序渲染时占用的资源币同尺寸的普通纹理要多.通道纹理命名时应以_al结尾。

    • 模型烘焙及导出

    1.模型的烘焙方式有两种:一种是LightMap烘焙贴方式,这种烘焙贴图渲染出来的贴图只带有阴影信息,不包含基本纹理。具体应用于制作纹理较清晰的模型文件(如地形),原理是将模型的基本纹理贴图和LightMap阴影贴图两者进行叠加。优点是最终模型纹理比较楚,而且可以使用重复纹理贴图,节约纹理资源;烘焙后的模型可以直接导出FBX文件,不用修改贴图通道。缺点是LightingMap贴图不带有高光信息;
    2. 另一种是CompleteMap烘焙方式,这种烘焙贴图方式的优点是渲染出来的贴图本身就带有基本纹理和光影信息,但缺点是没有细节纹理,且在近处时纹理比较模糊。
    3. 烘焙贴图设置

    1).在进行completemap烘焙方式设置时应注意:贴图通道和物体uv坐标通道必须为1通道,烘焙贴图文件存储为tga格式,背景要改为与贴图近似的颜色;
    2). lightingmap烘焙设置时,和completemap设置有些不同,贴图通道和物体uv坐标通道必须为3通道,烘焙时灯光的阴影方式为adv.raytraced 高级光线跟踪阴影,背景色要改为白色,可以避免黑边的情况。主要物件的贴图uv必须手动展开。

    • 模型绑定及动画

    1.骨骼必须为IK、CAT、BIP三类,unity不认虚拟体动画,单个物体骨骼数量不超过60个。
    2.动画帧率、帧数的控制,一般情况下为每秒30帧,一个动画尽量控制在1秒内完成。
    3.角色蒙皮、动作调节规范详见—(动画规范流程表)。
    4.导出动画,分开2个文件,导出没有动作的模型、骨骼,模型需要带有蒙皮信息。之后调节好做动画后导出的就是只有骨骼的fbx文件。

    • 模型导出

    1.将烘焙材质改为标准材质球,通道为1,自发光100%;
    2.所以物体名、材质球名、贴图名保持一致;
    3.合并顶点,清除场景,删除没有用的一切物件;
    4. 清材质球,删除多余的材质球(不重要的贴图要缩小);
    5. 按要求导出fbx(检查看是否要打组导出),导出fbx后,再重新导入max中查看一遍fbx的动画是否正确;
    6.根据验收表格对照文件是否正确;

    • 文件备份提交标准

    1. 最终确认后的max文件分 角色模型、场景模型、道具模型带贴图存放到服务器相应的” 项目名/model/char” “项目名/model/scene” “项目名/model/prop”文件夹里面。动画文件对应的存放至anim 文件夹中。
    2. 导出给程序obj、fbx等格式文件统一存放至export文件夹下的子文件夹anim、model、prop

    • 项目命名要求

    1. 项目进入策划时,各部门统一为项目命好名称,服务器建立项目名称文件夹,制作人员本机制作时建立对应名称的项目文件夹。
    2. 角色模型命名:项目名_ 角色名字,max文件中模型对象如果需要分开各部位时,应在此命名的基础上_ 部位,如角色头部命名为:项目名_ 角色名_head ,以此类推。对应的材质球、贴图都将命名一致。
    3. 场景、道具命名:项目名_ 场景名称,max文件中对应的物体为项目名_ 场景名物体名,同类的比较多的情况下,命名为:项目名_ 场景名_物体名_01—–02……同类型的物体以数字类推方式命名。材质球、贴图对应物体名字。同类物体只需要给同一个材质球,同一贴图即可。
    4. 带通道的贴图:要加_al后缀
    5. 特效贴图以特效名称命名,贴图加入_vfx后缀。


    Unity3D模型法线反转问题


    问题描述:

    fbx模型导入Unity正常,但只要绑了骨骼,在3DMax中正常,进入Unity就法线反转

    问题原因:

    3DMax中模型用到复制和镜像的导出

    解决方案:

    需要多一步处理:
    1.重置变换,2.反转法线。按顺序进行这两个,在绑定模型前后都可以
    注:
    —-重置变换:
    选中模型 Utilities面板->Reset XForm->ResetSelected,然后在编辑器界面发现多了一个XForm编辑器,右键XForm,Collepase All
    —-反转法线:
    在poly面级别,选中模型所有面,点击Flip,或者给模型加Normal编辑器,勾选Flip normal选项

    其他


    模型面数过多或材质球过多可以使用 simplygon插件

    参考连接-注意事项
    参考连接-法线反转
    参考连接-插件

    展开全文
  • 这个程序unity3d的。本程序是功能主要是给当前场景照相,并调用通用文件夹对话框,自己选择路径和文件名保存图片。
  • 一:几个特殊文件夹介绍1.EditorEditor文件夹...Editor下面放的所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用。一般呢会把一些工具类的脚本放在这里,或者是一些编辑时用的DLL。 比如我们
  • Unity3D游戏资源的提取

    2014-09-16 22:37:07
    前言 ...国内一些比较小的Unity3D游戏基本上资源文件都打包在了apk的assets文件夹中,如下图中的《爸爸去哪儿2》资源结构。 我们知道,国外的游戏一般体验较高 画质一流,所以资源文件会更大
  • 很多刚刚接触Unity3d的童鞋花了大量的时间自学,可总是把握不好Unity3d的烘焙,刚从一个坑里爬出来,又陷入另一个新的坑,每次烘焙一个场景少则几个小时,多则几十个小时,机器总是处于假死机状态,半天看不到结果,...
  • 版本:unity 5.4.1 语言:C#   实战核心技术来到了第五章,这一章我准备分两篇来分析一下其中的代码,这一篇重点讲一下文件的读取,以及获取到数据后如何反射出对应类。作者的注释寥寥数语,所以很多代码要自己...
  • 前几天我做项目测试,需要获取保存拍的照片,在unity3d中,路径总是没什么问题的,但是在移动平台上,经查发现Application.temporaryCachePath和Application.persistentDataPath返回空字符串。便花时间认真研究了...
  • Unity3D官方教程:WebGL 什么是 Unity WebGL? 创建一个Unity WebGL项目
  • 模型文件后缀介绍

    2019-10-07 06:56:11
    通过saver.save函数将TensorFlow模型保存到了model/model.ckpt文件中,这里代码中指定路径为"model/model.ckpt",也就是保存到了当前程序所在文件夹里面的model文件夹中。 TensorFlow模型会保存在后缀为.ckpt的文件...
  • 非直译: AssetBundle是一个资源数据组合类,开发者可随机抽取资源组合成一个...AssetBundle实用Unity3d专用的文件格式,任何Unity3d程序均可请求加载,可实现序列化文件,例如模型,纹理或者音效片段,甚至是序列
  • 分享一款个人Unity3d软件设计开发实例 1 概述 软件制作过程中感觉有些像在做游戏,本软件为个人兴趣,还在测试制作阶段,仅用于学习交流。通过导入实际测量点云数据和抽样钻孔数据信息,采用DTM三角网三维建模技术和...
  • 沙盒路径与创建文件读取文件总结 获取沙盒路径 string _path = Application.persistentDataPath + &amp;amp;quot;/xxx&amp;amp;quot;; 创建文件路径 if (!File.Exists (_path)) { File.Create (_...
  • 如果编辑器意外崩溃了,但场景未保存,这时可以打开工程目录,找到/Temp/_Backupscenes/文件夹,可以看到有后缀名为.backup的文件,将该文件后缀名改为.unity拖拽到项目视图,即可还原编辑器崩溃前的场景。...
  • 关于Unity文件读取

    2015-10-21 11:46:47
     在程序发布后文件的存放有两种,第一种是打包到Uniyt的资源包中(*.unity3D),第二种就是把文件存放在一个特殊的目录如:StreamingAssets,这个目录的东西Unity不会打包任何资源包中(但让除非你手动打包),但是发布...
  • 1.以下哪一个选项不属于Unity引擎所支持的视频格式文件? 【D】 后缀名为mov的文件 后缀名为mpg的文件 后缀名为avi的文件 后缀名为swf的文件 2. HDR高动态光照渲染属于下列哪个选项的属性? 【D】 Lightmapping...
  • 很多刚刚接触Unity3d的童鞋花了大量的时间自学,可总是把握不好Unity3d的烘焙,刚从一个坑里爬出来,又陷入另一个新的坑,每次烘焙一个场景少则几个小时,多则几十个小时,机器总是处于假死机状态,半天看不到结果,...
1 2 3 4 5 ... 20
收藏数 1,111
精华内容 444
关键字:

unity3d 程序文件后缀