类变量在预制对象内实例化后不显示任何数据



我正在异步加载一个可寻址的预制件,其中包含一个名为Window的单一行为脚本。窗口具有字符串变量";请求";在instagriation上加载的。

窗口类定义

public class Window: MonoBehaviour{
public string request;
void Awake(){
request = "load_data";
}
}

初始化预制并获取";窗口";参考

AsyncOperationHandle<GameObject> loadOp = Addressables.LoadAssetAsync<GameObject>(address);
yield return loadOp;

if (loadOp.Status == AsyncOperationStatus.Succeeded){          
var op = Addressables.InstantiateAsync(address);
if (op.IsDone)
{
Window window = loadOp.Result.GetComponent<Window>();
var data = window.request; <------ this is empty
}
}
}

问题我在数据变量中得到空字符串,因为window.request为空。如果我调试代码;唤醒";Window类中的函数被调用,变量请求被加载,但我后来得到了空字符串,我不知道为什么。

运行Awake的窗口是由InstantiateAsync创建的实例,而不是由LoadAssetAsync创建的预制块。您应该参考实例的request

if (loadOp.Status == AsyncOperationStatus.Succeeded){          
Addressables.InstantiateAsync(address).Completed += op => 
{ 
if (op.Status == AsyncOperationStatus.Succeeded) 
{ 
Window window = op.Result.GetComponent<Window>(); 
var data = window.request;
} 
};
}

最新更新