前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity 数据读取|(一)宏的定义和资源路径

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

作者头像
游戏开发小Y
发布2024-01-18 19:13:40
2950
发布2024-01-18 19:13:40
举报
文章被收录于专栏: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 代码样例

代码语言:javascript
复制
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 常用路径说明

  • 程序读取文件首先需要获取路径,在不同平台路径的存取权限不同,用途也不一样,有些时候相同的资源存储路径,在不同平台下访问方式也不一样。相信大家一定踩坑不少,故总结常用的资源存储路径,便于以后方便查阅。 路径属性访问权限路径说明特点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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.平台宏定义
    • 1.1 使用场合
      • 1.2 常用定义
        • 1.3 代码样例
        • 2.资源路径
          • 2.1 常用路径说明
            • 2.2 常用路径说明
              • 2.2.1 IOS
              • 2.2.2 Android
              • 2.2.3 Windows
              • 2.2.4 Mac
              • 2.2.5 Windows Web Player
          相关产品与服务
          数据保险箱
          数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档