在我的层次结构中,我有10个游戏对象,例如David,James,Lisa等。所有这10个游戏对象都是另一个游戏对象的子代。父游戏对象具有脚本组件,其中有一个列表,其中存储了10个孩子的名字。当然,此列表在游戏过程中会不断更新,因此有时并非所有孩子的名字都会被存储。例如,在游戏的某一时刻,该游戏中可能有7个名字。
在初始状态下,层次结构中的所有10个游戏对象均被停用。在Update()函数中,我要浏览列表,激活第一个游戏对象5秒钟,然后将其停用,然后转到下一个游戏对象并执行相同的操作。一遍又一遍。那可能吗?我的意思是,如何在C#中的列表和层次结构中的游戏对象之间设置链接?
答案 0 :(得分:1)
如果仅存储游戏对象的名称,则需要使用public List<ProcessDTO> findByMetadata(Map<String, String> metadata) throws Exception {
String key = "meta.mdWrap.xmlData.test.metadata.";
BoolQueryBuilder query = new BoolQueryBuilder();
for (Map.Entry<String, String> entry : metadata.entrySet()) {
query.must(matchQuery(key + "name", entry.getKey()));
query.must(matchQuery(key + "content", entry.getValue()));
}
return findByQuery(query, true);
}
来获取子游戏对象。
Transform.Find
答案 1 :(得分:1)
我必须问一个问题,为什么要使用名称而不仅仅是标准的单位属性?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectCycler : MonoBehaviour {
public float durationInSeconds = 5.0f;
public GameObject[] objectsToCycle;
int currentNdx = 0;
void Start()
{
StartCoroutine(Cycle());
}
IEnumerator Cycle()
{
for(;;) {
objectsToCycle[currentNdx].SetActive(true);
yield return new WaitForSeconds(durationInSeconds);
objectsToCycle[currentNdx].SetActive(false);
currentNdx = (currentNdx + 1) % objectsToCycle.Length;
}
}
}
将该脚本拖放到任何对象中。在检查器中,展开objectsToCycle
属性,然后将size
设置为要循环的对象数。将对象拖入其中。
运行
请注意,该顺序与检查器(ObjectCycler,gif上方)中的对象数组中的顺序匹配,而不与层次结构中的顺序匹配。您可以通过在检查器中更改顺序来设置所需的任何顺序。
宣传
更快
您可以轻松设置订单。
Bill,Jill,Bob或Jill,Bill,Bob等
对象不必是子对象
对象可以重复
比尔,鲍勃,比尔,鲍勃,吉尔,鲍勃等...
您可以重命名对象,并且不会损坏
您可以在层次结构中移动对象,并且不会中断