Hola, espero que esten teniendo un buen dia.
Primero que nada a que me refiero con ortodoxo? Simplemente a que no sigue una doctrina es decir no sigue algo fijo, algo que quiero que sea de una manera pero es de otra.
Necesito que XYZ siempre miren hacia la misma direccion aunque rote el padre o el objeto y apartir de ahi poder modificar XYZ...
Conosco que un V3 "localposition" de un transform se refiere a la posicion local lo cual no se modifica, pero de todas formas los ejes no me hacen caso.. y eso es un problema para mi...
Vamos con ejemplos practicos, no creo que todabia me hayan entendido:
Script para dar ejemplo:
Una Tapa se cierra y se abre en el sentido Z SI TIENEN 5 MINUTOS PRUEBEN LO PORFA asi me ayudan sino es difícil entender mi problema <3
// PARA USARLO CREEN UN OBJETO CON MALLA TIPO CUBO
// EN LA ESCALA PONGANLE 0 EN Z
// INSERTEN EL SCRIPT EN EL OBJETO
// LISTO PUEDEN USAR EL SCRIPT
// CON E ABREN CON R CIERRAN
public class CloseTop : MonoBehaviour
{
private MeshRenderer _mesh;
public float maxScale = 1f;
public float speed = 2f;
private Vector3 _posFix;
private float _scaleStart;
private float _scaleEnd;
public bool _close = false;
public bool _open = false;
void Start()
{
_mesh = GetComponent<MeshRenderer>();
_posFix = transform.localPosition;
_scaleStart = transform.localScale.z;
_scaleEnd = _scaleStart;
}
void Update()
{
transform.localScale = new Vector3(1, -0.06f,Mathf.MoveTowards(transform.localScale.z, _scaleEnd, Time.deltaTime * speed));
transform.localPosition = _posFix + transform.forward * (transform.localScale.z / 2.0f + _scaleStart / 2.0f);
if (_open)
{
_close = false;
_mesh.enabled = true;
if (transform.localScale.z == maxScale)
{
_open = false;
}
}
if (_close)
{
_open = false;
if (transform.localScale.z == _scaleStart)