unity通过editor修改hierarchy上的gameobject的注意事项

如果修改的目标被设置成prefab,需要调用EditorUtility.SetDirty(ComponentObject)方法在Editor中将其标记为脏(变化过的)才能保存修改。否则会出现虽然属性被修改,但是运行时,系统会自动还原成prefab的参数。
 

void ChangeProperty(Component comp)
{
PrefabType prefabType = PrefabUtility.GetPrefabType(comp.gameObject);

if (prefabType == PrefabType.DisconnectedPrefabInstance || prefabType ==     PrefabType.PrefabInstance)

EditorUtility.SetDirty(comp);
}

猜你喜欢

转载自blog.csdn.net/th2017102802/article/details/107533373