Hola a todos, estoy buscando algún ejemplo en Script Code Editor para aplicar un giro continuo a una caja.
Lo quiero para hacer que las cajas giren cuando pasen por una cinta en curva. Ahora solo se trasladan, no giran. Cuando son rodillos giran y se trasladan, pero en cinta no.
Gracias de antemano.
Puedes usar la función OrbitTo(Vector3 pos,float sp) del componente WorkPart.
Por ejemplo si usas un plano usando la función List<WorkPartLogic> WorkPartCollisionList te devolverá una lista de todos los componentes WorkParts que se encuentran en el plano.
Puedes orbitar los WP respecto a un punto de origen para simular el giro de la cinta.
Hola, gracias por la respuesta.
Creo que mi problema es anterior, adjunto el código con los intentos anteriores comentados para que veas por dónde he ido:
int i = 0;
Vector3 a, b;
public void Init()
{
//a = new Vector3();
}
public void Main()
{
a = new Vector3 (0, i, 0);
b = new Vector3 (-12, 0, 26);
i++;
//WorkPart25.ApplyMovement(true, 15.0f, true, false);
//WorkPart25.OrbitTo(Cam104.transform.position, 15.0f);
//WorkPart25.OrbitTo(b, 15.0f);
}
public void Physics()
{
//WorkPart25.MoveRotation(a * 10);
//WorkPart24.MoveRotation(a * 10);
WorkPart25.OrbitTo(b, 15.0f);
}
public void Finish()
{
}
Hola, sigo sin ser capaz de acceder al WorkPart y hacerlo girar. En el transportador de banda que estoy simulando en Init() arranco todos los caminos, el workpartCreator, el destructor, pero ni en Main() ni en Physics() soy capaz de modificar el estado de movimiento de la caja. Necesito el código para trabajar a partir de ahí. Adjunto el código que tengo hasta ahora, arranca los caminos pero no hace nada más.
Sabéis si hay algún ejemplo de código en el que se modifique el movimiento de un objeto?
Gracias
int i = 0;
Vector3 pos;
Vector3 a, b;
public void Init()
{
//a = new Vector3();
WorkPart25.WorkPartType = 2;
Cam101.Advance(true);
Cam102.Advance(true);
Cam103.Advance(true);
Cam104.Reverse(true);
Cam105.Advance(true);
Cam106.Reverse(true);
Cam107.Advance(true);
Cam108.Advance(true);
Cam109.Advance(true);
Cam110.Advance(true);
IOManager.SetInput(24, true);
//WorkPart25.transform.IKEnable(false);
}
public void Main()
{
a = new Vector3 (0, i, 0);
b = new Vector3 (-12, 0, 26);
i++;
//WorkPart25.ApplyMovement(true, 15.0f, true, false);
//WorkPart25.OrbitTo(Cam104.transform.position, 15.0f);
//WorkPart25.OrbitTo(b, 15.0f);//// DIGITAL OUTPUTS ////
WorkPartCreator22.CreateByTime(2, 4);
//pos = WorkPart25.CurrentPosition();
//pos = WorkPart25.transform.position;
//WorkPart25.transform.Rotate(2, i, 10, 0);
//EditorUtils.ShowText(pos.ToString());
}
public void Physics()
{
//WorkPart25.MoveRotation(a * 10);
//WorkPart24.MoveRotation(a * 10);
//WorkPart25.OrbitTo(b, 15.0f);
WorkPart25.transform.Rotate(2, -i * 10, 10, 0);
pos = WorkPart25.transform.position;
EditorUtils.ShowText(pos.ToString());
}
public void Finish()
{
}
Aquí tienes un ejemplo.