【问题标题】:When generating automatic new guid by script why the new guid is one long 0 digits?通过脚本生成自动新 guid 时,为什么新 guid 是一个长 0 位?
【发布时间】:2021-01-22 15:28:25
【问题描述】:

最初的目标是制作一个编辑器脚本,并且仅在将单声道脚本附加到一个对象以使其生成新的 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-000000000000 它在返回编辑器时执行,而不仅仅是在将脚本附加到游戏对象时执行。

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

我需要它,因为每次我加载保存的游戏时,游戏对象实例 ID 都会发生变化。 unity为objects生成新的id和保存的游戏文件上的id/s不一样。

【问题讨论】:

标签: c# unity3d


【解决方案1】:

new Guid() 就是这样做的;改用Guid.NewGuid()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 2017-07-05
    • 2010-09-28
    • 2012-06-25
    • 2011-10-04
    • 1970-01-01
    • 2016-01-15
    相关资源
    最近更新 更多