问题简介
在用Unity开发游戏的时候,需要将数据保存在Prefab中,我使用了EditorUtility.SetDirty()这个方法,但是一直没有像想象中那样工作。下面是部分代码
private void MarkThisDirty() {
if (Application.isPlaying)
return;
if (PrefabUtility.GetCorrespondingObjectFromSource(script.gameObject) != null) {
EditorUtility.SetDirty(script);
} else {
EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager.GetActiveScene());
}
}
这是为了保存游戏中A星算法使用的地图数据,下面是A星算法的数据结构
namespace AStar {
// 为了简洁我删除了一些代码,只显示了数据结构
// 结点
public class Node {
[SerializeField] private Vector3 position;
[SerializeField] private bool isOpen;
[SerializeField] public Node prevNode;
[SerializeField] public int ID;
[SerializeField] public float F {
get {
return H + G; }