我正在为Google Daydream(移动VR平台)创建游戏,我使用不同的代码在编辑器和目标构建中加载和保存数据。我的保存功能如下所示:
public void SaveData() {
XmlSerializer serializer = new XmlSerializer(typeof(ItemDatabase));
FileStream stream;
#if UNITY_ANDROID
stream = new FileStream(Application.persistentDataPath + "/game_data.xml", FileMode.Create);
serializer.Serialize(stream, gameDB);
stream.Close();
Debug.Log("Data Saved[Android]");
#endif
#if UNITY_EDITOR
stream = new FileStream(Application.dataPath + "/StreamingAssets/XML/game_data.xml" , FileMode.Create);
serializer.Serialize(stream, gameDB);
stream.Close();
Debug.Log("Data Saved[Editor]");
#endif
}
当我在编辑器中运行它时,我获得了android和编辑器的日志,因此两个部分都被执行了。这可能是因为Unity模拟智能手机(每次我在编辑器中玩游戏时都会收到此警告:“编辑模式下不支持VRDevice白日梦。请在目标设备上运行。”?
答案 0 :(得分:6)
当您在编辑器中时,您也处于特定平台中,即在构建设置中选择的平台。
如果你想在不在编辑器中运行android,那么你需要说出来:
#if UNITY_ANDROID && !UNITY_EDITOR
stream = new FileStream(Application.persistentDataPath + "/game_data.xml", FileMode.Create);
serializer.Serialize(stream, gameDB);
stream.Close();
Debug.Log("Data Saved[Android]");
#elif UNITY_EDITOR
stream = new FileStream(Application.dataPath + "/StreamingAssets/XML/game_data.xml" , FileMode.Create);
serializer.Serialize(stream, gameDB);
stream.Close();
Debug.Log("Data Saved[Editor]");
#endif
}