Unity学习笔记--Editor、Resource等常用文件夹的用处

前言

我们在使用Unity进行开发的时候,文件夹的名字是不可以随便取的,有些文件夹的名字是配合Unity一起使用的,所以为了避免造成奇奇怪怪的问题,在此记录下。

文件夹名字
Editor
Editor Default Resources
Plugins
Resources
StreamingAssets
  1. Editor

    Editor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以。比如目录:/xxx/xxx/Editor和/Editor是一样的,无论多少个叫Editor的文件夹都可以。Editor下面放的所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用。一般呢会把一些工具类的脚本放在这里,或者是一些编辑时用的DLL。比如我们现在要做类似技能编辑器,那么编辑器的代码放在这里是再好不过了,因为实际运行时我们只需要编辑器生成的文件,而不需要编辑器的核心代码。

  2. Editor Default Resources

    Edior Default Resources注意中间是有空格的,它必须放在Project视图的根目录下,如果你想放在/xxx/xxx/Editor Default Resources 这样是不行的。你可以把编辑器用到的一些资源放在这里,比如图片、文本文件、等等。它和Editor文件夹一样都不会被打到最终发布包里,仅仅用于开发时使用。你可以直接通过EditorGUIUtility.Load去读取该文件夹下的资源。

  3. Plugins

    如果做手机游戏开发一般andoird或者ios要接一些sdk、可以把sdk依赖的库文件放在这里,比如 .so .jar .a文件。这样打完包以后就会自动把这些文件打在你的包中。

  4. Resources

    可以在根目录下,也可以在子目录里,只要名子叫Resources就可以。比如目录:/xxx/Resources和/Resources是一样的,无论多少个叫Resources的文件夹都可以。Resources文件夹下的资源不管你用还是不用都会被打包进 .apk或者 .ipa

    Resource.Load

    编辑时和运行时都可以通过Resource.Load来直接读取。

    Resources.LoadAssetAtPath()

    它可以读取Assets目录下的任意文件夹下的资源,它可以在编辑时或者编辑器运行时用,它但是它不能在真机上用,它的路径是"Assets/xx/xx.xxx”必须是这种路径,并且要带文件的后缀名。

    AssetDatabase.LoadAssetAtPath()

    它可以读取Assets目录下的任意文件夹下的资源,它只能在编辑时用。它的路径是"Assets/xx/xx.xx "必须是这种路径,并且要带文件的后缀名。

    在电脑上开发的时候尽量来用Resource.Load()或者Resources.LoadAssetAtPath(),假如手机上选择一部分资源要打assetbundle,一部分资源Resource.Load()。那么在做 .apk或者 .ipa的时候现在都是用脚本来自动化打包,在打包之前可以用AssetDatabase.MoveAsset()把已经打包成assetbundle的原始文件从Resources文件夹下移动出去在打包,这样打出来的运行包就不会包行多余的文件了。打完包以后再把移动出去的文件夹移动回来。

  5. StreamingAssets

    这个文件夹下的资源也会全都打包在 .apk或者 .ipa
    它和Resources的区别是,Resources会压缩文件,但是它不会压缩原封不动的打包进去。并且它是一个只读的文件夹,就是程序运行时只能读不能写。它在各个平台下的路径是不同的,不过你可以用Application.streamingAssetsPath它会根据当前的平台选择对应的路径。

    有些游戏为了让所有的资源全部使用assetbundle,会把一些初始的assetbundle放在StreamingAssets目录下,运行程序的时候在把这些assetbundle拷贝在Application.persistentDataPath目录下,如果这些assetbundle有更新的话,那么下载到新的assetbundle在把Application.persistentDataPath目录下原有的覆盖掉。

    因为Application.persistentDataPath目录是应⽤程序的沙盒目录,所以打包之前是没有这个目录的,直到应⽤程序在⼿机上安装完毕才有这个目录。

    StreamingAssets⽬录下的资源都是不压缩的,所以它比较大会占空间,比如你的应用装在手机上会占用100M的容量,那么你又在StreamingAssets放了⼀个100M的assetbundle,那么此时在装在手机上就会在200M的容量。

猜你喜欢

转载自blog.csdn.net/qq_52855744/article/details/124863169
今日推荐