Hey guys, I wanna seperate my gameobject when it's moving my target position. ,,Hey guys. I wanna seperate my gameobject when comes my target position. I don't have any problem when it's moving.

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();
}
},

I solved the problem guys.
moveOnNegativeYObjects*.transform.position = new Vector3(0, -y, 0); in here if I could give 0 x and y , i thought i can use only y coordinate but it’s not possible.*
new Vector3(moveOnYObjects_.transform.position.x, y, moveOnYObjects*.transform.position.z) because of that i’m gonna use this now and i can seperate my satellite.*_