Unity3D使用脚本无法保存Prefab的问题

问题简介

在用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; }
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值