Space Shooter - Asteroids moving randomly
Hello guys. First of all, I know this question has been asked, but I couldn't fix it with the given answers. My problem is the same as a lot of people were having: my script instantiates the asteroids and then they start moving at X,Y and Z, when they are supposed to move only in Z. It worked fine with just one asteroid, the problem starts when I loop the instantiation. The answer already given is to change "transform.forward" to "Vector3.forward", but when I do that it just does the same thing. I tried debugging but I can't find a solution. I'll post a couple of scripts and I hope you guys can help me.
public class GameController : MonoBehaviour {
public GameObject hazard;
public Vector3 spawnValues;
public int hazardCount;
void SpawnWaves() {
for(int i = 0; i < hazardCount; i++){
Vector3 spawnPosition = new Vector3 (Random.Range(-spawnValues.x, spawnValues.x),spawnValues.y,spawnValues.z);
Quaternion spawnRotation = Quaternion.identity;
Instantiate (hazard, spawnPosition, spawnRotation);
}
}
void Start() {
SpawnWaves ();
}
}
public class Mover : MonoBehaviour {
Rigidbody boltRigidbody;
public float speed;
void Start(){
boltRigidbody = GetComponent<Rigidbody> ();
boltRigidbody.velocity = Vector3.forward * speed;
}
}
public class RandomRotator : MonoBehaviour {
public float tumble;
Rigidbody asteroidRigidbody;
void Start() {
asteroidRigidbody = GetComponent<Rigidbody> ();
asteroidRigidbody.angularVelocity = Random.insideUnitSphere * tumble;
}
}
P.S. : As I already said, if I comment the for loop it just spawns one asteroid moving in the correct axis, the problem starts when I loop the instantiation.
P.D.: Actually now that I checked better it doesn't matter if I spawn 10 or 1, they move at X and Y when they should only move at Z.
Answer by thinmanroad · Jan 10, 2018 at 05:41 PM
I fixed it. The problem was that I don't recall them saying in the tutorial that Asteroids should have the collider as Is trigger, so they where colliding with each other and therefore bouncing and moving in different directions. Setting the collider to Is trigger fixed it.