0

I want to do something and I don't even come out. I have a sprite. When I start I want it to be rotated to a random position of these (90f, -180f, -90f). for example give the start, its position is -90f on the z axis, or -180f, or 90f. I am a beginner and I do not know too much. Help!!!

public GameObject sprite;

void Start()
{
    //random z position (90f, -180f, -90f)
    //sprite.transform.Rotate
}

1 Answers1

3

Define an array of the possible rotations, and use Random.Range to pick a random element.

void Start()
{
    Vector3 eulerAngles = sprite.transform.eulerAngles ;
    float[] angles = new float[]{-180f, -90f, 90f};
    int index = Random.Range(0,angles.Length-1);
    eulerAngles.z = angles[index] ;
    sprite.transform.eulerAngles = eulerAngles ;
}
Hellium
  • 7,206
  • 2
  • 19
  • 49
  • Thanks for the feedback. Please, don't forget to accept the answer if it helped you. – Hellium Dec 14 '17 at 13:27
  • @Hellium that line though `rotation.z = (new float[]{-180f, -90f, 90f})[Random.Range(0,2)];` ^^ i always thought readability is one of the key features for good programming (or at least teaching beginners)? :P but then its also cool, i never thought of it like that before :D – yes Dec 14 '17 at 13:54
  • 1
    @yes : Indeed, I agree, this one is disgusting ^^' Changed my code for a cleaner one ! ;D – Hellium Dec 14 '17 at 14:03