I don’t have any problem when it’ s moving. My problem is, my gameobject comes my target position it’s seperate(disassemble) but looks like seperating where it’s start. I don’t wanna do that. I want seperate the parts at the target position of the object in the y position and show what the materials are for. Thanks for the help guys.
Here is my code:
public GameObject[] moveOnNegativeYObjects;
public GameObject[] moveOnYObjects;
public GameObject[] waypoints;
public GameObject player;
int current = 0;
public float speed;
float WPradius = 1;
public Transform target;
public Transform target2;
public float rotationSpeed = 20;
bool isRotationOn = true;
public float disassemblySpeed;
private float speedX = 0.5f;
void TransformYObjects()
{
float y = Mathf.PingPong(Time.time * speedX, 1) * 3f;
for (int i = 0; i < moveOnYObjects.Length; i++)
{
moveOnYObjects*.transform.position = new Vector3(0, y, 0);*
}
}
void TransformNegativeYObjects()
{
float y = Mathf.PingPong(Time.time * speedX, 1) * 3f;
for (int i = 0; i < moveOnNegativeYObjects.Length; i++)
{
moveOnNegativeYObjects*.transform.position = new Vector3(0, -y, 0);*
}
}
void GoingTarget()
{
if (Vector3.Distance(waypoints[current].transform.position, transform.position) < WPradius)
{
current = Random.Range(0, waypoints.Length);
if (current >= waypoints.Length)
{
current = 0;
}
}
transform.position = Vector3.MoveTowards(transform.position,
waypoints[current].transform.position, Time.deltaTime * speed);
}
IEnumerator MoveToWardsRoutine()
{
yield return null;
isRotationOn = false;
}
void Update()
{
GoingTarget();
if (!transform.position.Equals(waypoints[current].transform.position))
{
transform.RotateAround(target.position, -Vector3.up, rotationSpeed * Time.deltaTime);
}
if (player.transform.position.Equals(target.transform.position))
{
TransformYObjects();
TransformNegativeYObjects();
}
},