Unity 数据读取|(一)宏的定义和资源路径

这篇具有很好参考价值的文章主要介绍了Unity 数据读取|(一)宏的定义和资源路径。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.平台宏定义

1.1 使用场合

  • 在程序中我们想要根据不同的运行环境去执行不同的代码时使用。比如我们在PC上和安卓上需要执行不同的代码,我们就可以使用Unity自带的宏定义来区分。

1.2 常用定义

定义 功能
UNITY_EDITOR 用于从游戏代码调用 Unity 编辑器脚本的脚本符号。
UNITY_EDITOR_WIN Windows 上编辑器代码的脚本符号。
UNITY_EDITOR_OSX Mac OS X 上编辑器代码的脚本符号。
UNITY_EDITOR_LINUX Linux 上编辑器代码的脚本符号。
UNITY_STANDALONE_OSX 专门用于 Mac OS X(包括 Universal、PPC 和 Intel 架构)编译或执行代码的脚本符
UNITY_STANDALONE_WIN 用于专门为 Windows 独立应用程序编译/执行代码的脚本符号。
UNITY_STANDALONE_LINUX 用于专门为 Linux 独立应用程序编译/执行代码的脚本符号。
UNITY_STANDALONE 用于为任何独立平台(Mac OS X、Windows 或 Linux)编译/执行代码的脚本符号。
UNITY_WII 用于为 Wii 控制台编译/执行代码的脚本符号。
UNITY_IOS 用于为 iOS 平台编译/执行代码的脚本符号。
UNITY_IPHONE 已弃用。请改用UNITY_IOS。
UNITY_ANDROID Android 平台的脚本符号。
UNITY_LUMIN Magic Leap OS 平台的脚本符号。您还可以使用PLATFORM_LUMIN。请注意,Lumin 平台不再受支持。
UNITY_TIZEN Tizen 平台的脚本符号。
UNITY_TVOS Apple TV 平台的脚本符号。
UNITY_WSA 脚本符号为通用Windows平台。此外,NETFX_CORE是在针对 .NET Core 编译 C# 文件并使用 .NET 时定义的脚本后端。
UNITY_WSA_10_0 通用 Windows 平台的脚本符号。此外,WINDOWS_UWP是在针对 .NET Core 编译 C# 文件时定义的。
UNITY_WEBGL 脚本符号为网页GL
UNITY_FACEBOOK Facebook 平台的脚本符号(WebGL 或 Windows 独立)。
UNITY_ANALYTICS 用于调用 Unity 的脚本符号分析。
UNITY_ASSERTIONS 用于断言控制过程的脚本符号。
UNITY_64 64 位平台的脚本符号。

1.3 代码样例

using UnityEngine;
using System.Collections;

public class PlatformDefines : MonoBehaviour {
  void Start () {

    #if UNITY_EDITOR
      Debug.Log("Unity Editor");
    #endif

    #if UNITY_IOS
      Debug.Log("iOS");
    #endif

    #if UNITY_STANDALONE_OSX
        Debug.Log("Standalone OSX");
    #endif

    #if UNITY_STANDALONE_WIN
      Debug.Log("Standalone Windows");
    #endif

  }          
}

2.资源路径

2.1 常用路径说明

  • 程序读取文件首先需要获取路径,在不同平台路径的存取权限不同,用途也不一样,有些时候相同的资源存储路径,在不同平台下访问方式也不一样。相信大家一定踩坑不少,故总结常用的资源存储路径,便于以后方便查阅。文章来源地址https://www.toymoban.com/news/detail-753799.html

    路径属性 访问权限 路径说明 特点
    Resources 只读 Unity内部路径,Resources文件夹,可以是Assets目录下的子目录或者是孙目录 会将文件夹内的资源打包集成到.asset文件里面。因此建议可以放一些Prefab,因为Prefab在打包时会自动过滤掉不需要的资源,有利于减小资源包的大小。资源读取使用Resources.Load()。
    Application.dataPath 只读 此属性用于返回程序的数据文件所在文件夹的路径。例如在Editor中就是Assets了。 只能用于Windows模式或者Editor模式。
    Application.streamingAssetsPath 只读 此属性用于返回流数据的缓存目录,返回路径为相对路径,适合设置一些外部数据文件的路径。放在Unity工程StreamingAssets文件夹中的资源发布后都可以通过这个路径读取出来。 (1)在打包时资源会原封不动地打包进去,不会压缩,一般放置资源数据(2)在PC/Mac中可实现对文件的“增删改查”等操作,但在移动端是一个只读路径。(3)在打包时不会被压缩,读取速度很快,但是需要加密预防别人解压破解。(4)一般在这个文件夹里面存放一些二进制文件(比如AssetBundle,mp4等一些文件)。(5)在Android端读取这个文件夹时,只能使用WWW进行异步读取,而在ios和pc上则可以使用File类及其他同步读取方式。
    Application.persistendDataPath 读写 此属性用于返回一个持久化数据存储目录的路径,可以在此路径下存储一些持久化的数据文件。 (1)这个路径可读可写,但只能在程序运行的时候才能读写操作,不能提前将数据放入这个路径;(2)在IOS上是应用沙盒,可以被iCloud自动备份,可以通过同步推送一类的助手直接取出文件;(3)在Android上的位置是根据Project Setting里设置的Write Access路径,可以设置是程序沙盒还是sdcard(如果在Android设置保存在沙盒中,那么就必须root以后才能用电脑取出文件,因此建议写在sdcard里);(4)在Android端读取这个文件夹时,只能使用WWW进行异步读取,而在ios和pc上则可以使用File类及其他同步读取方式。(5)可以将需要热更的文件放在里面(将一些文件放在Application.streamingAssetsPath,在运行后再将Application.streamingAssetsPath里面的文件移动到Application.persistentDataPath下,再进行热更。也可以完全从服务器上下载后存放在Application.persistentDataPath。
    Application.temporaryCachePath 只读 此属性用于返回一个临时数据的缓存目录。 IOS上不能被自动备份

2.2 常用路径说明

2.2.1 IOS

路径属性 路径
Application.dataPath Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data
Application.streamingAssetsPath Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data/Raw
Application.persistentDataPath Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents
Application.temporaryCachePath Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Library/Caches

2.2.2 Android

路径属性 路径
Application.dataPath /data/app/xxx.xxx.xxx.apk
Application.streamingAssetsPath jar:file:///data/app/xxx.xxx.xxx.apk/!/assets
Application.persistentDataPath /data/data/xxx.xxx.xxx/files
Application.temporaryCachePath /data/data/xxx.xxx.xxx/cache

2.2.3 Windows

路径属性 路径
Application.dataPath /Assets
Application.streamingAssetsPath /Assets/StreamingAssets
Application.persistentDataPath C:/Users/xxxx/AppData/LocalLow/CompanyName/ProductName
Application.temporaryCachePath C:/Users/xxxx/AppData/Local/Temp/CompanyName/ProductName

2.2.4 Mac

路径属性 路径
Application.dataPath /Assets
Application.streamingAssetsPath /Assets/StreamingAssets
Application.persistentDataPath /Users/xxxx/Library/Caches/CompanyName/Product Name
Application.temporaryCachePath /var/folders/57/6b4_9w8113x2fsmzx_yhrhvh0000gn/T/CompanyName/Product Name

2.2.5 Windows Web Player

路径属性 路径
Application.dataPath / file:///D:/MyGame/WebPlayer (即导包后保存的文件夹,html文件所在文件夹)
Application.streamingAssetsPath
Application.persistentDataPath
Application.temporaryCachePath

到了这里,关于Unity 数据读取|(一)宏的定义和资源路径的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity 工程化】unity一些资源路径用途

    Resources 目录用于存放可以通过 Unity 的 Resources.Load 函数进行加载的资源。这些资源会在构建时被打包为一个单独的资源包,因此它们必须满足一些 Unity 所要求的命名和文件夹结构规则。由于这些资源被打包在一起,因此在构建后的游戏中可以更方便地使用。 应用场景示例:

    2024年02月11日
    浏览(36)
  • Unity加载资源时的常用路径或文件夹

    加载资源或者下载资源时的常用路径,我们平常开发下用的是编辑器下的路径。 编辑器下使用的资源路径和Windows端打包后并没有什么区别。你在编辑器下写的资源路径代码,大概率是可以在Windows下无缝运行的,重点是移动端打包后使用的资源路径,和Windows的资源路径有所不

    2024年02月16日
    浏览(40)
  • Unity 获取文件夹引用并读取文件夹路径

    编辑器中的文件夹属于DefaultAssets类型的资源 EditorGUILayout.ObjectField 可以获取对象的引用 AssetDatabase.GetAssetPath可通过对象的实例id获取资源路径 DirectoryInfo 可获取目录内文件信息 Path.GetFileNameWithoutExtension 可获取无后缀的文件名 弹出窗口 选择文件夹 打印文件夹内文件名 点击文件

    2024年04月27日
    浏览(56)
  • 【Unity 实战100例】 教程 专栏《导航目录帖》带你深入学习Unity实战经验

    📣前言 本文章为 Unity 实战100例 教程 专栏 导航帖,正在积极更新中! 本系列博客争取把Unity入门阶段的实战小项目都包含住 本专栏适用人群 :对Unity有一个基本的认识,开始上手Unity的实战内容的小伙伴。 当然你也完全可以零基础观看本系列博客 如果需要速学Unity也可以来

    2024年02月12日
    浏览(43)
  • 【动态规划专栏】专题二:路径问题--------1.不同路径

    本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:动态规划专栏 🚚代码仓库:小小unicorn的代码仓库🚚

    2024年02月20日
    浏览(46)
  • Unity Android 之 读取下载获取移动端 sdcard 路径下的指定文件夹的所有图片的几种方式的简单整理

    目录 Unity Android 之 读取下载获取移动端 sdcard 路径下的指定文件夹的所有图片的几种方式的简单整理 一、简单介绍 二、实现原理 三、注意事项 四、简单实现步骤 五、关键代码 附录: 一、不同平台使用宏区分路径加载 二、Unity3D中的资源路径 三、Unity3D各平台路径(包括手

    2024年01月19日
    浏览(84)
  • Unity入门学习——资源导入

    Window - Asset Store- Search Online - 找到合适的资源 - 添加到我的资源 导入资源商店资源 Window - Pack Manager - My Asset - download - Import 导入桌面文件 选择资源直接拖动到Asset目录下

    2024年02月11日
    浏览(39)
  • unity学习(垃圾回收,资源释放)

    在C++中,所有你在堆上申请的内存空间,必须手动释放掉,否则就会造成内存的泄露。 C#使用了GC(Garbage Collector)来进行内存的管理以达到自动释放不需要的内存的目的,但是GC并不能做的十分完美,对于一些非托管资源,GC无能为力,这就要求我们必须手动的释放那么非托

    2024年02月16日
    浏览(32)
  • Unity框架学习--资源管理器

    1、Inspector窗口拖拽         在脚本中用public声明变量,然后在Inspector窗口把要加载的资源拖拽给该脚本的变量。         不建议在大型项目使用。在公司的项目也不要用。         如果你是独立游戏开发者,则可以用。         不支持热更新。 2、Resources         用Reso

    2024年02月12日
    浏览(47)
  • 【动态规划专栏】专题二:路径问题--------6.地下城游戏

    本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:动态规划专栏 🚚代码仓库:小小unicorn的代码仓库🚚

    2024年02月22日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包