Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Unity3d中导入精灵的物理大小_Ios_Unity3d - Fatal编程技术网

Ios Unity3d中导入精灵的物理大小

Ios Unity3d中导入精灵的物理大小,ios,unity3d,Ios,Unity3d,我在Unity3d中为iOS开发一款游戏,在构建游戏并将其发送到设备后,我注意到安装的应用程序的实际大小非常大,我的意思是超过2GB的大小,哈哈 我在流浪,为什么?所以我创建了测试项目,创建了场景,并向其中添加了一个大小为2048x2048的图像。所以我得到了一个包含以下文件的项目: 糠秕 MyScene 已使用以下设置导入MySprite: 纹理类型:雪碧 精灵模式:单一 像素到单位:100 过滤模式:点 最大尺寸:2048 格式:Truecolor 我甚至没有忘记取消选中覆盖iOS设置。因此

我在Unity3d中为iOS开发一款游戏,在构建游戏并将其发送到设备后,我注意到安装的应用程序的实际大小非常大,我的意思是超过2GB的大小,哈哈

我在流浪,为什么?所以我创建了测试项目,创建了场景,并向其中添加了一个大小为2048x2048的图像。所以我得到了一个包含以下文件的项目:

糠秕 MyScene 已使用以下设置导入MySprite:

纹理类型:雪碧 精灵模式:单一 像素到单位:100 过滤模式:点 最大尺寸:2048 格式:Truecolor 我甚至没有忘记取消选中覆盖iOS设置。因此,MySprite在未压缩状态下的大小为16MB。很好。无质量损失,每像素32位

然后我创建了Xcode项目。并在数据文件夹sharedassets0.assets中找到,该文件的大小为16.1MB!我做了一些研究,发现这个文件很大是因为MySprite。所以我很困惑。一点。然后,我从这个Xcode项目中创建了ipa文件,解压了cool-game.ipa文件,再次找到了sharedassets0.assets,它的大小为16.1MB

我不喜欢这种行为。为什么MySprite的物理大小为16MB?我知道,在内存中的未压缩状态下,无论如何需要16MB。但我想在设备上压缩文件,并在运行时解压缩它。因为我不喜欢大小为16 MB*100的应用程序:

那么,是否可以要求Unity3d在构建时压缩图像


另外,我正在使用OS X 10.9.3,Unity3d v.4.5。我有Unity3d Pro,但没有iOS Pro

我找到了下一个解决方案

我将所有需要物理照明的图像放入扩展名为.bytes的Resources文件夹中。然后我通过

var binImage = Resources.Load<TextAsset>(imagePathInResourcesFolder);
myTexture2D.LoadImage(binImage.bytes);
如果您需要来自Texture2D的Sprite,您可以始终使用Sprite.Create函数

这对我有好处,因为我可以轻松地加载和卸载图像以释放内存使用。但这种解决方案有很大的缺点。没有任何Unity3d扩展,我们就失去了通常的Unity工作流。那太可悲了。但这是我找到的唯一可行的解决办法

另外,实际上您可以使用WWW类加载图像。但目前我更喜欢使用资源

请记住,Unity3d包含了所有它可以使用的东西,从Resources文件夹到build