【发布时间】:2012-02-01 15:12:23
【问题描述】:
我有一个大型四叉树结构,由指向更多列表等的通用列表 (List<T>) 组成。这些列表包含在一个类中:TreeNode<T>
在这样一棵树中,我存储GameObject 类型的对象。
为了使树更新更快,我想在每个 GameObject 上存储一个指向包含 TreeNode 的指针/引用,但是......我遇到了由泛型类型 <T> 引起的问题TreeNode。
这是我遇到问题的地方(在TreeNode 类中):
contents.Add(typedObject);
if (typedObject is GameObject)
{
GameObject gameObject = (GameObject) (object) typedObject;
gameObject.treeNode = this;
}
我得到错误:
Cannot implicitly convert type 'TreeNode<T>' to 'TreeNode<GameObject>'
任何帮助或建议将不胜感激。谢谢。
编辑 -->
该节点存储在GameObject上,如下:
public TreeNode<GameObject> treeNode;
【问题讨论】:
-
有点离题但是....上次我实现一个四叉树时,每个节点都在大数组中。这大大加快了四叉树的速度。编辑:它是一个完全扩展的四叉树。 (更好的性能,更多的内存消耗)
-
你能发布 GameObject 的代码,或者至少发布与 treeNode 属性相关的部分吗?
-
Felix:谢谢,记忆不应该是个问题,所以这会有所帮助。我想我可以将数组索引存储在 GameObject 上以指向它?
-
那么 node 是 GameObject 上的属性还是你的第一个 sn-p 中的 treeNode ?
-
@Arachin 您仍然可以使用直接参考。如果您愿意,可以使用索引。完全扩展的四叉树的好处是移动、排序和访问游戏对象时的速度。我没有找到原始来源,但也许我会稍后再寻找代码。
标签: c# list generics casting compiler-errors