Como puedo hacer un
gameobject.transform.prent = game.transform;
gameobject.transform.localScale = scale;
[/quote]
¿C´0mo puedo hacer un parent sin modificar el scale?
transform.SetParent(target, true);
[/quote]
Cita de: francoe1 date=1504524744transform.SetParent(target, true);
Estas seguro Franco? yo pense que si ponias "true" te hacia el parent de toda la vida, y si le dabas "false" jerarquicamente te hacia el parent pero nada mas, sin modificar pos,rot y scale respecto al nuevo objeto. Osea si solo quiere NO modificar scale pero si el resto no se si funcionaria. Nunca lo use en false por eso tambien te consulto.
Cita de: lightbug date=1504563307Estas seguro Franco? yo pense que si ponias "true" te hacia el parent de toda la vida, y si le dabas "false" jerarquicamente te hacia el parent pero nada mas, sin modificar pos,rot y scale respecto al nuevo objeto. Osea si solo quiere NO modificar scale pero si el resto no se si funcionaria. Nunca lo use en false por eso tambien te consulto.
Con el tema de UI estuve usando mucho la función, pero me hiciste dudar y probe...
Si pones
false, el componente transform no se modifica, por lo cual si emparentan a un objeto que tenga como escala (2,2,2) el resultado del transform sería el mismo que antes de emparentar por lo que este se escalará por su jerarquía.
Si pones
true, el componente transform se modifica, por lo cual si emparentan a un objeto que tenga como escala (2,2,2) el resultado del transform sería (.5,.5,.5) para mantener la escala del objeto, lo mismo con las rotaciones.
Cita de: francoe1 date=1504573682Si pones false, el componente transform no se modifica, por lo cual si emparentan a un objeto que tenga como escala (2,2,2) el resultado del transform sería el mismo que antes de emparentar por lo que este se escalará por su jerarquía.
y se mueve tambien con el padre?
lo probaria pero ni ganas de dar click al icono de Unity que tengo aca a 47 pixels de distancia
Cita de: lightbug date=1504573877y se mueve tambien con el padre?
lo probaria pero ni ganas de dar click al icono de Unity que tengo aca a 47 pixels de distancia
ni idea jajajaj despues pruebo jajaaj, supongo que sigue el patron de escala y rotación.
Cita de: francoe1 date=1504612355ni idea jajajaj despues pruebo jajaaj, supongo que sigue el patron de escala y rotación.
con false me hizo lo comun del parent, lo del padre se paso al hijo, la posicion del hijo es relativa al padre y la escala se transfiere
con true me modifico al hijo con tal de dejarlo intacto donde estaba pero tambien andaba lo mas bien, yo siempre pense que solo a nivel jerarquico te hacia el hijo, como un hijo especial que no se mueve con el padre, que idiota es solo un calculo previo para dejarlo igual que antes. Osea esto esta genial para plataformas y no tenes el problema de que el personaje se vuelva obeso morbido tipo 2 cada vez que se sube a una jajaj.
saludos
Pero normalmente cuando haces un SetParent() solo indicando un transform ya lo hace sin modificar la escala del objeto que mueves no? O sea, en el transform del hijo cambiará la escala local para adaptarla a la del padre y que el objeto se mantenga igual a nivel global.
Cita de: TheBullet date=1504680183Pero normalmente cuando haces un SetParent() solo indicando un transform ya lo hace sin modificar la escala del objeto que mueves no? O sea, en el transform del hijo cambiará la escala local para adaptarla a la del padre y que el objeto se mantenga igual a nivel global.
me mataste, habria que probar, si haces el setparent solo pienso que te hará la version "false" quizas..¿? es que toda la vida usé transform.parent = .... y se comportaba como la false, y generalmente cuando usaba SetParent a la hora de setear cosas lineas abajo elegia la posicion global directamente y no la local (del inspector) asi que nunca me di cuenta de cual de las dos te hacia (la escala se me iba descontrolada eso si por eso pienso que es la false). habra que probar luego.
Cita de: lightbug date=1504699135me mataste, habria que probar, si haces el setparent solo pienso que te hará la version "false" quizas..¿? es que toda la vida usé transform.parent = .... y se comportaba como la false, y generalmente cuando usaba SetParent a la hora de setear cosas lineas abajo elegia la posicion global directamente y no la local (del inspector) asi que nunca me di cuenta de cual de las dos te hacia (la escala se me iba descontrolada eso si por eso pienso que es la false). habra que probar luego.
Ah, pues yo al revés, siempre utilizo SetParent y solo indico el transform que va a ser el padre, de hecho no sabia que había un bool para indicar que se mantenga la escala xD. Haciéndolo así cambia la escala a nivel local para ajustarla y mantener la escala a nivel global anterior. ¿Cambiándolo directamente desde transform.parent también se mantiene la escala a nivel global o se deforma el objeto?
Entiendo que en SetParent el bool por defecto es true por lo que pone en la documentación:
worldPositionStays |
If true, the parent-relative position, scale and rotation are modified such that the object keeps the same world space position, rotation and scale as before. |
[/quote]
https://docs.unity3d.com/ScriptReference/Transform.SetParent.html (https://docs.unity3d.com/ScriptReference/Transform.SetParent.html)
Cita de: TheBullet date=1504720286¿Cambiándolo directamente desde transform.parent también se mantiene la escala a nivel global o se deforma el objeto?
Recien probe y no se deforma nada, funciona exactamente igual al setparent -> true, es decir que en mi caso el conocer el SetParent fue para cagada, me trajo mas confusión, antes con el transform.parent era feliz y planeo seguir usandondolo asi... SetParent R.I.P
Cita de: TheBullet date=1504720286Entiendo que en SetParent el bool por defecto es true por lo que pone en la documentación:
Si tenes razon, se me paso, queda en true por defecto, es decir que deberia mantener todo bien