美文网首页Unity学习之路
Unity3D 中的特殊文件夹

Unity3D 中的特殊文件夹

作者: Rdxer | 来源:发表于2018-09-27 22:31 被阅读5次

整理自 Unity3D研究院之手游开发中所有特殊的文件夹

1. Editor

前提: 文件夹名称为 Editor 即可

  1. Editor下面放的所有资源文件或者脚本文件都不会被打进发布包中
  2. 脚本也只能在 编辑时 使用
  3. 一般会把一些工具类的脚本放在这里
  4. or 一些编辑时用的DLL

    比如我们现在要做类似技能编辑器,那么编辑器的代码放在这里是再好不过了,因为实际运行时我们只需要编辑器生成的文件,而不需要编辑器的核心代码。

2. Editor Default Resources

前提: 它必须放在Project视图的根目录下

  1. 存放编辑器用到的资源

    比如图片、文本文件

  2. 和Editor文件夹一样不会被打到最终发布包里,仅仅用于开发时使用
  3. 直接通过EditorGUIUtility.Load去读取该文件夹下的资源
    TextAsset text = EditorGUIUtility.Load("test.txt")as TextAsset;
    Debug.Log(text.text);
    

3. Gizmos

  1. 存放 Gizmos 用的图片资源
  2. 可以传一个Vecotor3 作为图片显示的位置。 参数2就是图片的名子,当然这个图片必须放在Gizmos文件夹下面。
    void OnDrawGizmos() {
        Gizmos.DrawIcon(transform.position, "0.png", true);
    }
    
  3. 如果只想挂在某个游戏对象身上Inspecotr里面就可以直接设置
  4. OnDrawGizmos
    1. 脚本继承MonoBehaviour
    2. 编辑模式下就会每一帧都执行它
    3. 它只能用于在scene视图中绘制一些小物件

      比如要做摄像机轨迹,那么肯定是要在Scene视图中做一个预览的线,那么用Gizmos.DrawLine 和Gizmos.DrawFrustum就再好不过了。

4. Plugins

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

5. Resources

只要名子叫Resources就可以

  1. Resources文件夹下的资源不管你用还是不用都会被打包进.apk或者.ipa
  2. 加载方式
    1. Resource.Load

      编辑时和运行时都可以通过Resource.Load来直接读取。
      2. Resources.LoadAssetAtPath()
      >它可以读取Assets目录下的任意文件夹下的资源,它可以在编辑时或者编辑器运行时用它,但是它不能在真机上用,它的路径是”Assets/xx/xx.xxx” 必须是这种路径,并且要带文件的后缀名。
      3. AssetDatabase.LoadAssetAtPath()
      >它可以读取Assets目录下的任意文件夹下的资源,它只能在编辑时用。它的路径是”Assets/xx/xx.xxx” 必须是这种路径,并且要带文件的后缀名。
      4. 打包
      1. 开发时尽量来用
      1. Resource.Load()
      2. Resources.LoadAssetAtPath()
      >假如手机上选择一部分资源要打assetbundle,一部分资源Resource.Load().那么在做.apk或者.ipa的时候 现在都是用脚本来自动化打包,在打包之前 可以用AssetDatabase.MoveAsset()把已经打包成assetbundle的原始文件从Resources文件夹下移动出去在打包,这样打出来的运行包就不会包行多余的文件了。打完包以后再把移动出去的文件夹移动回来。

6. StreamingAssets

  1. 这个文件夹下的资源也会全都打包在.apk或者.ipa

  2. 和Resources的区别

    1. Resources会压缩文件
    2. StreamingAssets不会压缩
    3. StreamingAssets是只读的文件夹
  3. 获取路径: Application.streamingAssetsPath

  4. 使用技巧:

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

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

相关文章

网友评论

    本文标题:Unity3D 中的特殊文件夹

    本文链接:https://www.haomeiwen.com/subject/mmwyoftx.html