В моем прорыве клона я пытаюсь разбить мяч, и в этот момент они принимают случайные направления для перемещения. Это направление определяется в Start() каждого экземпляра шара. При наблюдении кажется, что чем больше шаров я разделяю, тем более очевидным становится, что все шары движутся в одном направлении, в верхний правый угол экрана. Может ли кто-нибудь помочь? Почему значения одинаковы при каждом разрыве шаров? Это мой код:Unity3D: Случайные значения выглядят одинаково?
// Use this for initialization
void Start()
{
ballRB = transform.rigidbody;
direction = new Vector3(0,1,0);
//If there's only one ball in the field, being this current one, the default up motion should be used.
if (GameObject.Find("StartBall").GetComponent<StartBall>().numBalls <= 1) ballRB.AddForce(direction*1000f, ForceMode.Force);
//If not, there are more balls, which means the player split the ball. A random direction should be used in this case.
else ballRB.AddForce(GenerateRandomDirection(), ForceMode.Force);
}
Vector2 GenerateRandomDirection()
{
int randX = Random.Range(0,360);
int randY = Random.Range(0,360);
randDirection = new Vector2(randX, randY);
return randDirection;
}
Ну, может быть, вы положили 'Debug.log (randDirection);' перед 'return randDirection; ', чтобы проверить, похожи ли они. В быстром тесте, просто генерирующем Vector2, как и вы, они не там. –