提问人:CR9GAMING 提问时间:3/30/2021 更新时间:3/30/2021 访问量:709
C#/Unity 实例化类创建具有相同实例 ID 0 的副本
C#/Unity Instantiating class creating copies with same instance ID of 0
问:
下面的函数应该创建一个新实例并将其添加到列表中,但是在运行时,它会返回错误。当我创建多个实例时,所有实例都具有相同的 ID,这是 0,更改一个实例的变量也会更改其他实例的变量。你知道我做错了什么吗?SolarSystem_Manager
var clone = Instantiate(_solar)
nullreference
_solar
private void createSolarSystem()
{
SolarSystem_Manager _solar = new SolarSystem_Manager();
_solar.solarSystem = new SolarSystem(transform.GetComponent<Galaxy>(), Random.Range(9, 10), new List<LQPlanetManager>(), new SunManager());
var clone = Instantiate(_solar);
solarSystems.Add(clone);
}
答:
0赞
NandoErni
3/30/2021
#1
不应使用 关键字实例化 Unity 对象。你应该在编辑器中制作一个SolarSystem_Manager的预制件,并将其存储在某个变量中:new
将以下内容添加到您的班级中:
[SerializeField] private GameObject _solarSystemManagerPrefab;
在编辑器中,创建一个预制件并将其拖放到 .
_solarSystemManagerPrefab
现在你可以像这样实例化你的预制件:
GameObject clone = Instantiate(_solarSystemManagerPrefab)
评论
SolarSystem_Manager
UnityEngine.Object
MonoBehaviour
new