我想在随机的地方生成obj,它可以在X轴上随机移动

问题描述 投票:1回答:1

我正在做点什么。在这个项目中,我想在随机位置生成一个可以连续从左到右的对象。到目前为止,我有这个。

这是一个类的内部开始,它生成50个对象,玩家可以在游戏加载时跳转到该对象。

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);

}

附着在其上的支架物体有一种方法。

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

transform.position = startingPos;}

​

此代码可以生成多个对象。但是从左到右的速度相同。

我改变了移动速度。一些obj移动到屏幕的一半,一些完整。我希望所有对象都以不同的速度移动到全屏。

谢谢你的回答。

c# unity3d 2d game-physics
1个回答
0
投票

用这个:

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;
}

如果这不是您想要的,请更详细地描述您的情况,我将编辑答案。

© www.soinside.com 2019 - 2024. All rights reserved.