unity3d - 我仍然不明白为什么将一个简单的小型预制件从一个项目复制到另一个项目如此困难?
问题描述
如果我只是将预制文件从一个文件夹复制到另一个文件夹,它将无法正常工作。我不会看到带有所有材料纹理的预制件。
在我的原始项目中,在这种情况下更改为 GameObject 后,我将一扇门拖到资产并创建了一个新的预制件。现在我也想在其他项目中复制和使用这个预制件。
原项目中预制件截图:
然后在我的新项目中复制预制文件后只有 7KB 大小:
由于它在原始项目中不起作用,我在预制件上右键单击并选择了导出包...
如果我不检查是否包含依赖项,它将创建一个包,并且在将其导入另一个新项目后,它将不再工作。
但是,如果我检查并使用包含依赖项,它将生成一个超过 32MB 文件大小的包,其中包含我原始项目中的几乎所有内容,而不仅仅是我想要的门预制件。
现在它可以在其他项目中正常工作,但我需要为门预制件打包几乎整个原始项目,这太疯狂了。
在我的新项目中,我现在有很多与门无关的东西,比如脚本预制场景。
我只右键单击门。我不明白为什么复制一个简单的小预制件并在另一个项目中使用它这么难。
现在在新项目中,我需要导入包并在屏幕截图中查看新包包含的东西太多了,看看右边的滚动条它将导入多少东西。99.9% 未以任何方式连接到门预制件:
这是在另一个项目中使用门预制件的唯一方法
解决方案
99.9% 未以任何方式连接到门预制件
这是错误的,它们是相关的。
脚本
预制件附加了用户脚本,那么所有的脚本都将被包含在内,因为如果您删除任何类,则脚本可能无法成功编译。
模型、材质、纹理、着色器
看起来预制件是从模型创建的,因此将包含所有模型文件、材质、纹理和着色器。
如果一个模型文件是一个导入的模型(比如FBX),那么与这个模型相关的东西(生成的材质、动画……)也会被包含进来。
声音
我看到声音也在列表中,所以检查你的预制件,可能有一个AudioSource
。
所以结论是简单的小预制件实际上并不简单。
推荐阅读
- express - 无法连接到 DigitalOcean 中的安全 websocket
- eclipse - 如何增强 Eclipse JPA 验证以包含 Oracle 特定功能?
- html - 在输入标签中键入内容后是否会触发任何 CSS 选择器?
- c# - 如何在检查员统一中显示“对象”变量
- linux - 结合Netstat和PS的输出 - linux
- node.js - 由代码创建的heroku文件在哪里?
- python - 使用 PyCharm 调试器运行 Flask CLI 命令
- javascript - 从路线 HERE 地图中排除特定道路
- android - 是否可以使用云功能为具有不同 Firebase 项目的 2 个不同应用程序发送 FCM 通知
- php - 忽略值 $request == null