Search code examples
c#unity-game-engine2dgame-physics

I want to generate obj at random places which can move in random speed in X axis


I am working on something. In this project I want to generate a object at random position which can go left to right continuously. So far I have got this.

This is inside start of a class that generate 50 object on which player can jump on when game loads.

void Start () {

Vector2 pos = transform.position;

for(int i = 0; i < noOfHolder; i++)

{ pos.x = Random.Range(-3, 3);

pos.y += Random.Range(1, 5);

Instantiate(holder, pos, Quaternion.identity);

}

and

the holder object which is attached to it have a method.

updatePosition(){
//moveSpeed = Random.Range(1,3);tried this
startingPos.x = moveSpeed * Mathf.Sin(Time.time);//*moveSpeed

transform.position = startingPos;}

​

This code can generate multiple objects. but with the same sin speed from left to right.

I change the move speed. Some obj move to the half of the screen some full. I want all the object move to full screen with vary speed.

Thank you for answering.


Solution

  • use this:

    void Start()
    {
        Vector2 pos = transform.position;
        for(int i = 0; i < noOfHolder; i++)
        {
            pos.x = Random.Range(-3, 3);
            pos.y += Random.Range(1, 5);
            Instantiate(holder, pos, Quaternion.identity);
        }
        moveSpeed = Random.Range(1,3);
        moveDistance = 1.0f;
    }
    
    void Update()
    {
        startingPos.x = moveDistance * Mathf.Sin(Time.time * moveSpeed);
        transform.position = startingPos;
    }
    

    if this is not what you want, please describe your situation in more detail and i will edit the answer.