C# 统一错误:设置驻留在预制资源中的转换的父级被禁用,以防止数据损坏
我试图将以下对象实例化为该脚本驻留的C# 统一错误:设置驻留在预制资源中的转换的父级被禁用,以防止数据损坏,c#,unity3d,C#,Unity3d,我试图将以下对象实例化为该脚本驻留的gameobject的子对象: var newEnergyPart = Instantiate<GameObject>(energyPart, energyBarLayout.transform.position, Quaternion.identity); newEnergyPart.transform.SetParent(energyBarLayout.gameObject.transform); var newEne
gameobject
的子对象:
var newEnergyPart = Instantiate<GameObject>(energyPart, energyBarLayout.transform.position, Quaternion.identity);
newEnergyPart.transform.SetParent(energyBarLayout.gameObject.transform);
var newEnergyPart=实例化(energyPart,energyBarLayout.transform.position,Quaternion.identity);
newEnergyPart.transform.SetParent(energyBarLayout.gameObject.transform);
但是,它总是给我这个错误:
设置驻留在预制资产中的转换的父级将被禁用,以防止数据损坏(游戏对象:“BarUnit(克隆)”)。
UnityEngine.Transform:SetParent(Transform)
我认为确保将父对象设置为n实例化的gameobject
会使错误消失,因为它一直出现。- 看起来像是“energyBarLayout”脚本附加到Prefable对象,您不能将“Prefable”设置为实例化转换的父级,所以应该检查并更改“energyBarLayout”
- 在您的例子中,您尝试在实例化父对象之前创建“newEnergyPart”,因此我认为您应该首先实例化“energyBarLayout”游戏对象,然后创建“newEnergyPart”,这样它肯定会工作
- 看起来像是“energyBarLayout”脚本附加到Prefable对象,您不能将“Prefable”设置为实例化转换的父级,所以应该检查并更改“energyBarLayout”
- 在您的例子中,您尝试在实例化父对象之前创建“newEnergyPart”,因此我认为您应该首先实例化“energyBarLayout”游戏对象,然后创建“newEnergyPart”,这样它肯定会工作
energyBarLayout
是预制的吗?包含更多的代码。energyBarLayout
?