17.Unity中特殊文件夹

17.Resources资源动态加载-Unity中特殊文件夹


17.1 知识点

Application.dataPath 工程路径获取

  • Application类中的dataPath静态变量 获取工程路径
    • 包含目标设备上的游戏数据文件夹路径(只读)。
    • 注意 该方式 获取到的路径 一般情况下 只在 编辑模式下使用
    • 我们不会在实际发布游戏后 还使用该路径
    • print(Application.dataPath);//E:\GameDevelopment\GameDevelopmentLearning\Unity\Unity基础\Unity基础教程\Assets

Resources 资源文件夹

  • 需要我们自己手动在Asset文件下创建Resources文件夹 名字一定不要错
  • 路径获取:一般不获取
    • 只能使用Resources相关API进行加载
    • 如果硬要获取 可以用工程路径拼接
    • print(Application.dataPath + "/Resources");//E:\GameDevelopment\GameDevelopmentLearning\Unity\Unity基础\Unity基础教程\Assets\Resources
  • 创建:Resources文件夹需要我们自己创建
    • 作用:资源文件夹
    • 需要通过Resources相关API动态加载的资源需要放在其中
    • 该文件夹下所有文件都会被打包出去
    • 打包时Unity会对其压缩加密 所以一般不会用Application.dataPath + “/Resources” 得到路径
    • 该文件夹打包后只读 只能通过Resources相关API加载
  • 注意:不要把所有游戏资源都丢进去 一般放在美术资源文件夹就行了 需要动态加载或者打包的再丢进去

Application.StreamingAssets 流动资源文件夹

  • 需要我们自己手动在Asset文件下创建StreamingAssets文件夹 名字一定不要错
  • Application类中的streamingAssetsPath静态变量 获取流动资源文件夹路径
    • StreamingAssets 文件夹的路径(只读)。
    • 路径获取:print(Application.streamingAssetsPath);
  • 创建:StreamingAssets文件夹需要我们自己创建
    • 作用:流文件夹
    • 打包出去不会被压缩加密,可以任由我们摆布
    • 移动平台只读,PC平台可读可写
    • 可以放入一些需要自定义动态加载的初始资源

Application.persistentDataPath 持久数据文件夹

  • Application类中的persistentDataPath静态变量 获取持久数据文件夹路径
    • 包含持久数据目录的路径(只读)。
    • 路径获取:print(Application.persistentDataPath);//C:/Users/78529/AppData/LocalLow/DefaultCompany/UnityTeach2
  • 注意:不需要我们自己将创建
    • 作用:固定数据文件夹
      • 所有平台都可读可写
      • 一般用于放置动态下载或者动态创建的文件,游戏中创建或者获取的文件都放在其中
      • 比如游戏进行时要存数据文件,或者要热更新,就可以存到这个文件夹下
      • Resources和StreamingAssets都是只读的

Plugins 插件文件夹

  • 需要我们自己手动在Asset文件下创建Plugins文件夹 名字一定不要错
  • 注意:需要我们自己创建
  • 作用:插件文件夹
    • 不同平台的插件相关文件放在其中
    • 比如IOS和Android平台 可能需要对应平台提供的代码包才能在Unity使用
    • 以后搞SDK相关的时候可能才用得到

Editor 编辑器文件夹

  • 需要我们自己手动在Asset文件下创建Editor文件夹 名字一定不要错
  • 路径获取:一般不获取
    • 如果硬要获取 可以用工程路径拼接
    • print(Application.dataPath + "/Editor");
  • 注意:需要我们自己将创建
    • 作用:编辑器文件夹
      • 开发Unity编辑器时,编辑器相关脚本放在该文件夹中
      • 该文件夹中内容不会被打包出去

Standard Assets 默认资源文件夹

  • 需要我们自己手动在Asset文件下创建Standard Assets文件夹 名字一定不要错
  • 注意:需要我们自己将创建
  • 作用:默认资源文件夹
    • 一般Unity自带资源都放在这个文件夹下
    • 代码和资源优先被编译

17.2 知识点代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson17_Resources资源动态加载_Unity中特殊文件夹 : MonoBehaviour
{
    void Start()
    {
        #region 知识点一 工程路径获取

        //Application类中的dataPath静态变量 获取工程路径
        //包含目标设备上的游戏数据文件夹路径(只读)。
        //注意 该方式 获取到的路径 一般情况下 只在 编辑模式下使用
        //我们不会在实际发布游戏后 还使用该路径
        //游戏发布过后 该路径就不存在了 
        print(Application.dataPath);//E:\GameDevelopment\GameDevelopmentLearning\Unity\Unity基础\Unity基础教程\Assets

        #endregion

        #region 知识点二 Resources 资源文件夹

        //需要我们自己手动在Asset文件下创建Resources文件夹 名字一定不要错

        //路径获取:一般不获取
        //只能使用Resources相关API进行加载
        //如果硬要获取 可以用工程路径拼接
        print(Application.dataPath + "/Resources");//E:\GameDevelopment\GameDevelopmentLearning\Unity\Unity基础\Unity基础教程\Assets\Resources
        //这样获取意义不大

        //创建:Resources文件夹需要我们自己创建
        //作用:资源文件夹
        //1-1.需要通过Resources相关API动态加载的资源需要放在其中
        //1-2.该文件夹下所有文件都会被打包出去
        //1-3.打包时Unity会对其压缩加密 所以一般不会用Application.dataPath + "/Resources" 得到路径
        //1-4.该文件夹打包后只读 只能通过Resources相关API加载

        //注意:不要把所有游戏资源都丢进去 一般放在美术资源文件夹就行了 需要动态加载或者打包的再丢进去

        #endregion

        #region 知识点三 StreamingAssets 流动资源文件夹

        //需要我们自己手动在Asset文件下创建StreamingAssets文件夹 名字一定不要错

        //Application类中的streamingAssetsPath静态变量 获取流动资源文件夹路径
        //StreamingAssets 文件夹的路径(只读)。
        //路径获取:
        print(Application.streamingAssetsPath);

        //注意:千万不要这样写!!这样写在PC平台没有问题 打包出去之后dataPath会失效 会有问题!!
        //print(Application.dataPath + "/StreamingAssets");

        //创建:StreamingAssets文件夹需要我们自己创建
        //作用:流文件夹
        //2-1.打包出去不会被压缩加密,可以任由我们摆布
        //2-2.移动平台只读,PC平台可读可写
        //2-3.可以放入一些需要自定义动态加载的初始资源

        #endregion

        #region 知识点四 persistentDataPath 持久数据文件夹

        //Application类中的persistentDataPath静态变量 获取持久数据文件夹路径
        //包含持久数据目录的路径(只读)。
        //路径获取:
        print(Application.persistentDataPath);//C:/Users/78529/AppData/LocalLow/DefaultCompany/UnityTeach2

        //注意:不需要我们自己将创建
        //作用:
        //固定数据文件夹
        //3-1.所有平台都可读可写
        //3-2.一般用于放置动态下载或者动态创建的文件,游戏中创建或者获取的文件都放在其中

        //比如游戏进行时要存数据文件,或者要热更新,就可以存到这个文件夹下
        //Resources和StreamingAssets都是只读的

        #endregion

        #region 知识点五 Plugins 插件文件夹

        //需要我们自己手动在Asset文件下创建Plugins文件夹 名字一定不要错

        //路径获取:一般不获取

        //注意:需要我们自己创建

        //作用:插件文件夹
        //不同平台的插件相关文件放在其中
        //比如IOS和Android平台 可能需要对应平台提供的代码包才能在Unity使用
        //以后搞SDK相关的时候可能才用得到

        #endregion

        #region 知识点六 Editor 编辑器文件夹

        //需要我们自己手动在Asset文件下创建Editor文件夹 名字一定不要错

        //路径获取:一般不获取
        //如果硬要获取 可以用工程路径拼接
        print(Application.dataPath + "/Editor");

        //注意:需要我们自己将创建
        //作用:编辑器文件夹
        //5-1.开发Unity编辑器时,编辑器相关脚本放在该文件夹中
        //5-2.该文件夹中内容不会被打包出去

        #endregion

        #region 知识点七 Standard Assets 默认资源文件夹 

        //需要我们自己手动在Asset文件下创建Standard Assets文件夹 名字一定不要错

        //路劲过去:一般不获取

        //注意:需要我们自己将创建
        //作用:默认资源文件夹
        //一般Unity自带资源都放在这个文件夹下
        //代码和资源优先被编译

        #endregion
    }
}

17.3 练习题

在你的工程中创建这些特殊文件夹



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏