我在你的游戏中创建了两个独立对象的实例。当玩家.spawn一个时,另一个也会spawn。玩家可以spawn多个相同对象的实例,所以我需要跟踪和链接这两个独立对象,并且只跟踪spawn在一起的对象。

我给了这两个对象在spawn时独有的id,但我不知道如何继续。

我想能够引用变量和sprite renderers等东西。

// 对象一的脚本:
using System;
using UnityEngine;

public class FishTab_MB : MonoBehaviour
{
    // 对象的唯一id
    public string UniqueId { get; private set; }

    private void Start()
    {
        // 在spawn时生成一个唯一的id
        UniqueId = System.Guid.NewGuid().ToString();
        // 在控制台输出id
        Debug.Log("FishTab_MB UniqueId: " + UniqueId);
    }
}

// 对象二的脚本:
using System;
using UnityEngine;

public class FishAI_MB : MonoBehaviour
{
    // 对象的唯一id
    public string UniqueId { get; private set; }
    // 对象的sprite renderer
    public SpriteRenderer fishSr;

    private void Start()
    {
        // 在spawn时生成一个唯一的id
        UniqueId = System.Guid.NewGuid().ToString();
        // 在控制台输出id
        Debug.Log("FishAI_MB UniqueId: " + UniqueId);
    }
}

如果你想让两个对象能够引用对方的变量和sprite renderers等东西,你可以在对象一的脚本中添加一个引用对象二的脚本的变量,或者在对象二的脚本中添加一个引用对象一的脚本的变量。

例如:

// 对象一的脚本:
public class FishTab_MB : MonoBehaviour
{
    // 对象的唯一id
    public string UniqueId { get; private set; }
    // 对象二的脚本
    public FishAI_MB fishAI;

    private void Start()
    {
        // 在spawn时生成一个唯一的id
        UniqueId = System.Guid.NewGuid().ToString();
        // 在控制台输出id
        Debug.Log("FishTab_MB UniqueId: " + UniqueId);
        // 查找对象二
        fishAI = GameObject.Find("FishAI_MB").GetComponent<FishAI_MB>();
    }
}

// 对象二的脚本:
public class FishAI_MB : MonoBehaviour
{
    // 对象的唯一id
    public string UniqueId { get; private set; }
    // 对象一的脚本
    public FishTab_MB fishTab;

    private void Start()
    {
        // 在spawn时生成一个唯一的id
        UniqueId = System.Guid.NewGuid().ToString();
        // 在控制台输出id
        Debug.Log("FishAI_MB UniqueId: " + UniqueId);
        // 查找对象一
        fishTab = GameObject.Find("FishTab_MB").GetComponent<FishTab_MB>();
    }
}

这样两个对象就可以引用对方的变量和sprite renderers等东西了。