движение unity 2d обьекта в рандомное направление
нужно чтобы обьект в unity при загрузке сцены начинал двигатся в рандомное направление даже помогите пожалуйста как так можно сделать?
Источник: Stack Overflow на русском
нужно чтобы обьект в unity при загрузке сцены начинал двигатся в рандомное направление даже помогите пожалуйста как так можно сделать?
Держи несколько примеров. 1 - Движение к цели с векторами. Есть еще метод Translate()
void Update()
{
// Move our position a step closer to the target.
var step = speed * Time.deltaTime; // calculate distance to move
transform.position = Vector3.MoveTowards(transform.position, target.position, step);
// Check if the position of the cube and sphere are approximately equal.
if (Vector3.Distance(transform.position, target.position) < 0.001f)
{
// Swap the position of the cylinder.
target.position *= -1.0f;
}
}
2 - Через физику, наиболее верный вариант на мой взгляд. Почему через физику лучше. Так же есть свойство velocity.
void FixedUpdate()
{
if (Input.GetButton("Jump"))
{
//Apply a force to this Rigidbody in direction of this GameObjects up axis
m_Rigidbody.AddForce(transform.up * m_Thrust);
}
}
Остается написать метод для рандомизации вектора. Например, самое простое:
private Vector3 RandomizeVector()
{
Vector3 randomPosition = new Vector3(Random.Range(minPosition.x, maxPosition.x),
Random.Range(minPosition.y, maxPosition.y),
Random.Range(minPosition.z, maxPosition.z) );
return randomPosition;
}
И запускать все это рандомное дело в Start() или Awake() и двигать соответственно в Update(), с физикой в FixedUpdate()