我为Unity构建了一个名为world-renderer
的自定义程序包。这是文件夹结构。
在“运行时”内部是我的全部源代码。要在Unity项目中使用它,请将此行添加到该项目的manifest.json
中。
"com.tamagames.extinction.word-renderer": "file:C:/Users/dbugger/projects/unity/world-renderer",
到目前为止,此方法效果很好,但现在我想开始在自定义程序包中使用ECS。所以我将其命名空间添加到其中一个文件中:
using Unity.Entities;
现在当我返回Unity编辑器时,看到以下错误消息:
CS0234:名称空间“ Unity”中不存在类型或名称空间名称“实体”(您是否缺少程序集引用?)
我认为我需要将依赖项添加到自定义程序包的package.json
中,因此我这样编写了更新的代码:
{
"name": "com.tamagames.extinction.word-renderer",
"version": "1.0.4",
"displayName": "Extinction - World renderer",
"description": "World renderer for Extinction",
"unity": "2019.1",
"unityRelease": "0b5",
"keywords": [],
"dependencies": {
"com.unity.entities": "0.1.1-preview" // Dependency added
},
"author": {
"name": "Enrique Moreno Tent",
"email": "enriquemorenotent@gmail.com",
"url": "https://enriquemorenotent.com"
}
}
但是我仍然不断遇到同样的错误。
我在做什么错了?
更新
我尝试将引用添加到程序包的Assembly中,如下所示:
{
"name": "Unity.com.tamagames.extinction.world-renderer-ecs",
"optionalUnityReferences": ["com.unity.entities"],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": []
}
那确实解决了找不到“ Unity.Entities”的问题,但是现在,在Unity Project中,找不到我的源代码中的类!
答案 0 :(得分:0)
我怀疑这与程序集定义有关:您可以通过在代码中添加引用来解决此问题(在您的程序集定义文件中-如果您没有引用,则需要在 Runtime中创建一个引用) 文件夹)到Unity.Entities
。
答案 1 :(得分:0)
好吧,我明白了。
首先,我不应该使用optionalUnityReferences
,而应该使用references
。
但是最大的错误是,尽管package.json中的依赖项称为com.unity.entities
,但Assembly文件中的依赖项应称为Unity.Entities
。