Tengo un GameObject con RectTransform que me gustaría eliminar a través de un script. En otras palabras, quiero reemplazar RectTransform con un Transform regular en el inspector usando un script.
En el inspector, simplemente puede hacer clic en el menú desplegable RectTransform y seleccionar Eliminar componente desde allí y RectTransform se reemplaza con Transform. Por supuesto, esto solo funciona si no hay componentes que dependan directamente de RectTransform.
Si pruebo este enfoque con un script como: Destroy(GetComponent<RectTransform>())
obtengo un error que dice:
No se puede destruir el componente RectTransform de 'MyGameObject'. Si desea destruir el objeto del juego, llame a 'Destruir' en el objeto del juego. No se permite destruir el componente RectTransform.
Por supuesto, esto es algo esperado, ya que no puedes eliminar una transformación de un gameObject. Sin embargo, en el caso de que esté tratando de recuperar el antiguo componente Transform, este comportamiento no es deseable .
Entonces mi pregunta es: ¿hay alguna manera de reemplazar el RectTransform actual con un componente Transform simple a través de un script, y cómo se hace esto?
No puede eliminar una conversión. Como alternativa, cree un objeto vacío y mueva allí toda la jerarquía ubicada en ese objeto. Simplemente puede cambiar el padre del primer hijo y alinear la posición local, o implementar un sistema más complejo, según lo que necesite.