【发布时间】:2018-02-20 22:37:10
【问题描述】:
我在主/编辑器项目 unity 中有 2 个部分类,但 unity 向我显示错误消息“错误 CS1061:'Engine.Test' 类型不包含'radius' 的定义并且没有'radius' 类型的扩展方法'可以找到 Engine.Test'。您是否缺少程序集引用?"
./Assets/Test.cs(在主项目中):
namespace Engine {
public partial class Test : MonoBehaviour {
[SerializeField]
private float radius = 1f;
}
}
./Assets/Editor/TestEditor.cs(在项目编辑器中):
namespace Engine {
public partial class Test {
private void OnDrawGizmosSelected() {
Gizmos.color = new Color(1f, 1f, 0f, 0.3f);
Gizmos.DrawSphere(new Vector3(0,0,0), radius); // in "this" context field "radius" not found
}
}
}
我做错了什么?
【问题讨论】:
-
@vc74,对不起,是的,这个错字,“引擎”)|固定
-
你为什么使用部分类?你想达到什么目的?与 SO 相比,可能更多的是对 CodeReview 的评论,但我认为部分类定义应该只真正用于 separate 逻辑片段。这似乎是一个障碍,必须从一个部分跳到另一个部分才能理解它们。
-
@Eddge 不,部分类型可以有不同的定义,只要它们是相同的类型(类)并标记为部分。见this link
-
@Sudsy1002 啊谢谢。