我在你的游戏中创建了两个独立对象的实例。当玩家.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等东西了。
评论 (0)