提问人:Maifee Ul Asad 提问时间:6/3/2021 最后编辑:Barış Can YılmazMaifee Ul Asad 更新时间:6/3/2021 访问量:163
如何在 Unity 动作闭包中访问 gameObject [duplicate]
how to access gameObject in a unity action closure [duplicate]
问:
在Unity中,我有这段代码:
var go = gameObject;
var some=123;
Debug.Log(go);
socket.On("login", _ => {
Debug.Log("1");
Debug.Log(some);
Debug.Log(go);
Debug.Log("2");
});
只是我想访问变量 go,但由于它超出了游戏对象的闭包和类型,因此无法访问它。
在控制台中:
HomeObject
1
123
但是调用该 HomeObject 后的所有内容都会消失。
如何在闭包中访问我自己的类/gameObject?
答:
0赞
Siarhei Yakushevich
6/3/2021
#1
将该对象保留在层次结构的上方。
如果我没记错的话,您的游戏对象在从套接字回调之前被销毁了。
您可以通过登录来检查:
....
socket.On("login", _ => {
Debug.Log("Socket callback");
});
void OnDestroy()
{
Debug.Log("Called before than send callback");
//if destroyed you can't access `gameObject`
//keep the object above in the calling hierarchy, or cancel request.
}
评论