C# 在Unity中根据运行时的层次结构更改数组中对象的索引
如何在运行时更改C# 在Unity中根据运行时的层次结构更改数组中对象的索引,c#,arrays,unity3d,indexing,siblings,C#,Arrays,Unity3d,Indexing,Siblings,如何在运行时更改对象的索引?对象的索引在层次结构中发生变化。因为我在游戏中使用了reorderableList。您可以在Unity UI Extension asset上看到。当对象的索引在层次结构中更改时,它也会更改数组中的索引 您可以从游戏对象的转换中获取其索引。GetSiblingIndex()。。。您还可以使用transform.SetSiblingIndex(int-index) 所以我想你要问的是如何将列表中某个项目的索引更新为高层中该项目的索引 首先,假设您使用的是UnityEng
对象的索引
?对象的索引在层次结构中发生变化。因为我在游戏中使用了reorderableList
。您可以在Unity UI Extension asset上看到。当对象的索引在层次结构中更改时,它也会更改数组中的索引
您可以从游戏对象的转换中获取其索引。GetSiblingIndex()
。。。您还可以使用transform.SetSiblingIndex(int-index)
所以我想你要问的是如何将列表中某个项目的索引更新为高层中该项目的索引
首先,假设您使用的是UnityEngine.UI.Extensions.ReorderableList
第二,我假设你的列表中已经填充了游戏对象下的所有元素,或者至少是你关心的位置
现在创建一个新的MonoBehavior或将一个function添加到一个新的MonoBehavior
public void UpdateSiblingIndex(ReorderableList.ReorderableListEventStruct eventData)
{
eventData.DroppedObject.transform.SetSiblingIndex(eventData.ToIndex);
}
下一步,在ReorderableList中,将此函数分配给OnElementAdd、OnElementDrop和列表中的任何其他事件,以确保元素更新其同级索引。您不能只跟踪顺序而不基于位置的索引吗?请改为这样。你吃了吗?我被缺乏代码和图像弄糊涂了——这幅图像应该告诉我什么?我们关心的是代码,而不是图片。如果你有一个特定的问题,考虑学习,提供代码尊重和你的例外/期望,你的代码没有得到满足,我相信这样会帮助你。Sebastian L我不能做任何事情。我试过兄弟姐妹,但始终不起作用。我解决了问题,但始终感谢你的帮助。