当通过脚本生成自动新guid时,为什么新guid是一个长0位的数字



最初的目标是制作一个编辑器脚本,只有当将mono脚本附加到对象时,它才会生成新的guid,但不确定如何生成。因此,目前我使用的是ExecuteInEditMode属性。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[ExecuteInEditMode]
public class GenerateAutomaticGuid : MonoBehaviour
{
public string guid;
private Guid uniqueID;
// Start is called before the first frame update
void Start()
{
uniqueID  = new System.Guid();
guid = uniqueID.ToString();
}
// Update is called once per frame
void Update()
{

}
}

字符串中的结果为:00000000-0000-0000-0000-000000000它在返回编辑器时执行,而不仅仅是在将脚本附加到游戏对象时。

主要目标是为脚本将附加到的每个游戏对象生成一个唯一的id。

我需要它,因为每次加载保存的游戏时,游戏对象实例id都会发生变化。unity为对象生成新的id,并且保存的游戏文件上的id不相同。

new Guid()就是这么做的;使用Guid.NewGuid()代替

最新更新