首先,请看我的代码。
using UniRx;
using UniRx.Triggers;
.......
var parent = new GameObject("parent");
parent.OnTransformChildrenChangedAsObservable()
.Subscribe(_ =>
{
Debug.Log("child object is added");
});
var child = new GameObject("child");
child.transform.SetParent(parent.transform);当我设置孩子的父类时,肯定会调用OnTransformChildrenChangedAsObservable()。但是,我不知道如何获得添加的对象,因为参数"_“是单位,而不是GameObject。
这是我真正想做的事情。
parent.OnTransformChildrenChangedAsObservable()
.Subscribe(g =>
{
Debug.Log(g.name);
});有什么方法可以实现这一点吗?事实上,我并不在意是否使用了UniRx。
谢谢!
发布于 2020-08-23 12:12:40
现在,这个问题似乎已经解决了。首先,我准备了一个函数作为GameObject的扩展,来获取它自己的子对象,比如:
public static List<GameObject> GetChildrenObjects(this GameObject gameObject)
{
var childrenObjects = new List<GameObject>();
foreach (Transform child in gameObject.transform)
{
childrenObjects.Add(child.gameObject);
}
return childrenObjects;
}所以现在我可以获得最后添加的子对象,如下所示。
parent.OnTransformChildrenChangedAsObservable()
.Subscribe(_ =>
{
var added = parent.GetChildrenObjects().Last();
});https://stackoverflow.com/questions/63484618
复制相似问题