Я работаю с Unity, использую C #, и мне нужно получить снимок в начале сцены.Но мне нужно получить снимок один раз и только один раз .До сих пор все примеры, которые я обнаружил, используют своего рода прослушиватель событий для получения снимка, и это означает, что снимок может быть перезаписан каким-либо событием.После того, как я создал прослушиватель событий (следуя инструкциям), я решил проблему с помощью оператора if.
Код, который я использую:
DataSnapshot dbSnapshot; // <-- the snapshot I need to use later
void Start(){
StartListener();
// Other stuff happens...
}
protected void StartListener() {
dbRoot.ValueChanged += (
object sender2, ValueChangedEventArgs e2) => {
if (e2.DatabaseError != null) {
Debug.LogError(e2.DatabaseError.Message);
return;
}
Debug.Log("ValueChangedEventArgs");
if (e2.Snapshot != null || e2.Snapshot.Value != null){
if (dbSnapshot == null){
// This happens once, and prevents the dbSnapshot from being overwritten
dbSnapshot = e2.Snapshot;
}
}
};
}
Кажется, он работает, ноЯ хотел бы знать, возможно ли получить снимок без прослушивателя событий или, по крайней мере, есть ли более элегантное решение.