- Home /
Asteroids moving in the wrong direction
My asteroids are moving in the wrong direction. When moving, it moves along the blue axis, but it has to move along the green axis. Here's a picture of it: http://i.imgur.com/996BWAY.png
You see, I fixed this problem earlier, but when I integrated the GameController in my game, it started going down the blue axis AGAIN.
This is my code for the movement of the asteroid:
using UnityEngine;
using System.Collections;
public class MoverAsteroid : MonoBehaviour
{
public float speed; //public float tilføjes så værdien kan ændres i selve unity istedet for at være kodebaseret
void Start ()
{
rigidbody.velocity = transform.up * speed; //transform forward er bevægelsen langt z-aksen.
}
}
(Ignore the danish notes) The value "speed" is set to -0.3 in Unity for testing reasons.
And this is the code for my GameController:
using UnityEngine;
using System.Collections;
public class GameController : MonoBehaviour
{
public GameObject hazard;
public Vector3 spawnValues;
void Start ()
{
SpawnWaves ();
}
void SpawnWaves ()
{
Vector3 spawnPosition = new Vector3 (Random.Range (-spawnValues.x,spawnValues.x), spawnValues.y, spawnValues.z);
Quaternion spawnRotation = Quaternion.identity;
Instantiate (hazard, spawnPosition, spawnRotation);
}
}
I believe these two are the only relevant codes for this, otherwise please let me know.
It all works perfectly just if I put in my asteroid prefab, it just doesn't spawn randomly.
As stated, I'm not sure if this is all sufficient, but let me know <3
Really not sure this time, but I assume it's something to do with Quaternion.identity. $$anonymous$$aybe try changing your original script back to transform.forward? Don't forget to mark your previous question as answered by the way!
Have you checked to see what the game object's up transform is? If that's the axis you're moving it along, there's a chance that's incorrect. If it is, you either need to implicitly tell the object what axis to move along or modify the rotation or the actual model when you instantiate it.
$$anonymous$$ev - I've done that, without results.
Darthtelle - as I said, it works perfectly if I just put in the asteroid by itself, but if I connect the GameController script, it does this.
I'm not sure if this is the answer to your answer, since I'm not sure I quite get you. (I'm new to Unity and program$$anonymous$$g in general)
O$$anonymous$$, so if it works fine normally as a prefab, what about when you instantiate inside the game controller not to set the rotation? Ins$$anonymous$$d of setting it to the identity quaternion you could maybe try either:
Instantiate(hazard, spawnPosition, hazard.transform.rotation);
Or:
GameObject hazardObject = (GameObject) Instantiate(hazard); hazardObject.transform.position = spawnPosition;
Hi Darthtelle. I've now made my GameController script like this: using UnityEngine; using System.Collections;
public class GameController : $$anonymous$$onoBehaviour
{
public GameObject hazard;
public Vector3 spawnValues;
void Start ()
{
SpawnWaves ();
}
void SpawnWaves ()
{
Vector3 spawnPosition = new Vector3 (Random.Range (-spawnValues.x,spawnValues.x), spawnValues.y, spawnValues.z);
Quaternion spawnRotation = Instantiate(hazard, spawnPosition, hazard.transform.rotation);;
Instantiate (hazard, spawnPosition, spawnRotation);
}
}
However, it comes up with an error: http://i.imgur.com/3bG$$anonymous$$x3u.png
Did I misunderstand you?
Answer by CrilleStyles · May 02, 2014 at 08:00 PM
Try to invert the direction in the script, That will maybe work
Answer by anto20117 · Mar 12, 2017 at 05:49 PM
when you have to move the Move Scripts from the Bolt to Asteroid it looked like this in the Bolt
GetComponent().velocity = transform.forward * 20;
change this line of code for Asteroid
SO IT LOOKS LIKE THIS
GetComponent().velocity = transform.forward * speed;
so Asteroid move to your Player NOT from your Player
Change the Speed in unity to -5
Hop this Help
Your answer
Follow this Question
Related Questions
Entity moving along the wrong axis 0 Answers
Rotation and movement? 1 Answer
chick what direction a cube is moving in then face it 1 Answer