最初的目标是制作一个编辑器脚本,只有当将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()
代替