# Programmering 1 - Instuderingsfrågor prov Unity 1. Förklara när följande unity-metoder körs: * `Start` * `Update` * `OnTriggerStay` 2. Förklara vad skillnaden är på metoderna `Update` och `FixedUpdate`. Förklara när du vill använda vilken av metoderna. 3. Förklara vad ordet "public" gör framför en variabel i ett C#-skript. 4. Förklara vad följande kod gör: ```csharp Rigidbody rb; void Start(){ rb = GetComponent<Rigidbody>(); } ``` 5. Vad gör "Instantiate()" funktionen i Unity? Vilka argument kan du skicka till Insantiate-funktionen? 6. Förklara vad en lista är och ge ett exempel på vad de kan användas till i Unity/spelprogrammering. 7. Givet att du har en variabel av typen `GameObject` som heter `ball`, skriv några rader kod som sätter det objektets position till en slumpad plats. Tips: använd `Random.Range(min,max)` för att skapa en slumpgenerad siffra. 8. Förklara vad följande kod gör: ```csharp float timer = 0f; void Update(){ timer += Time.deltaTime; if(timer > 5f){ print("hej!"); } } ``` 9. Förklara vad följande kod gör: ```csharp public TextMeshProUGUI textbox; void Update(){ if(Input.GetKey(KeyCode.Space)){ textbox.text = "A"; }else{ textbox.text = "B"; } } ``` 10. Förklara vad följande kod gör: ```csharp void OnCollisionEnter(Collision collision) { if (collision.gameObject.name == "Player") { Destroy(gameObject); } } ``` 11. Förklara vad följande kod gör: ```csharp void Update() { transform.position += new Vector3(2,0,0) * Time.deltaTime; } ``` 12. Förklara vad följande kod gör: ```csharp public GameObject cube; void Start() { for(int i = 0; i < 5; i++){ Instantiate(cube, new Vector3(i,0,0), Quaternion.identity); } } ``` 13. Vad kommer följande kod skriva ut till konsolen? ```csharp void Start() { List<string> namnLista = new List<string>(); namnLista.Add("Alice"); namnLista.Add("Bob"); namnLista.Add("Charlie"); print(namnLista[2]); } ``` 14. Förklara vad följande kod gör: ```csharp public List<GameObject> objects; int index = 0; void Update(){ if(Input.GetKeyDown(KeyCode.Tab)){ MeshRenderer meshRend = objects[index].GetComponent<MeshRenderer>(); meshRend.material.color = Color.White; index += 1; if(index == objects.Count){ index = 0; } MeshRenderer nextMeshRend = objects[index].GetComponent<MeshRenderer>(); nextMeshRend.material.color = Color.Red; } } ```