Unity – Funktsioonide loomine (Ülesanne 3)

Eesmärk

  • funktsioonid (meetodid)
    • sisseehitatud funktsioonid
    • kasutaja loodud funktsioonid
  • Ülesanne 3

Funktsioonid (meetodid)

Funktsioonid saab jagada laias laastus kaheks – sisseehitatud (built-in) ja kasutaja poolt loodud (user-defined). Funktsiooni eesmärk on lihtsustada koodi kirjutamist – esiteks vältida korduvate koodide uuesti ja uuesti kirjutamist ning samal ajal hoida kood lühem ja arusaadavam. OOP programmeerimiseks kutsutakse funktsioone ka meetoditeks (methods).

Sisseehitatud funktsioonid

Juba esimesi skriptimisharjutusi tehes nägime kahte funktsiooni:

	void Start () {
	
	}

	void Update () {
	
	}

Need on tulevad kaasa mängumootoriga ning Start() käivitub ühe korra koos programmiga ja Update() käivitatakse iga kaadriga. Funktsioonide ees on sõna void, mis tähendab, et väljundil puudub kindel tüüp ehk mitte midagi. Meetodeid (ja klasse) on palju ja ei taha hetkel siin kõike välja tuua, aga teeme tutvumiseks väikse näite. Lisame Update() funktsiooni koodi, mis väljastab teksti, kui keegi vajutab tühikut.

	void Update () {
		if (Input.GetKeyUp ("space")) {
			print ("hüppa");
		}
	}

Oma funktsiooni loomine

Oma funktsiooni loomisel tuleb arvestada, et alati on ainult üks väljund ning tuleb meeles pidada, et loodud funktsioon tuleb ka välja kutsuda.

Tekitame ühe lihtsa funktsiooni, mille ülesandeks on väljastada tekst “Bang Bang“. Kuna tegemist on tekstiga, siis funktsiooni tüübiks saab string. Funktsiooni väljakutsumiseks kasutame sama tühikule reageerimist.

	string tulista(){
		return "Bang Bang!";
	}


	void Update () {
		if (Input.GetKeyUp ("space")) {
			print(tulista ());
		}
	}

Funktsioonis kasutasin käsku return, mis iseenesest väljastab programmi jaoks teksti. Et meie seda näeksime, näiteks konsooli aknes, kasutame print funktsiooni. Üks pisike meelespea veel, et kui funktsiooni tüüp ei ole void, siis on return kohustuslik.

Funktsiooni argumendid

Funktsiooni kohta saab öelda ka, et see on eeskiri, kus sisendväärtusest sõltub väljundväärtus. Sisendväärtusi nimetatakse argumentideks. See tähendab, et eelpool toodud funktsioon võiks sõltuda kasutaja etteantud valikust. Argument lisatakse funktsiooni sulgudesse, kus tuleb määrata tüüp ja nimi. Ja kui sa nüüd funktsiooni välja kutsud, siis pead sulgude sisse lisama soovitud argumendi ehk sisendväärtuse.

Tekitame näitena olukorra, kus meil on teatud relva laskemoon, ning me saame valida, mitme kuuli kaupa lastakse. Niikaua, kuni lasta saame, toimub “Bang Bang” ja kui kuulid otsas, siis väljastatakse tekst “Klikk klikk”.

using UnityEngine;
using System.Collections;

public class hello_world : MonoBehaviour {

	public int laskemoon = 10;

	string tulista(int kuulideArv){
		if (laskemoon > 0) {
			laskemoon -= kuulideArv; //sama mis laskemoon = laskemoon - kuulideArv;
			return "Bang Bang!";
		} else {
			return "Klikk klikk!";
		}
	}

	void Update () {
		if (Input.GetKeyUp ("space")) {
			print(tulista (3));
		}
	}
}

Et hetkel on siis argumendiks, mitu kuuli korraga lastakse.

Ülesanne 3

  • Tekita uus skript ja pane tööle eespool näidatud tulistamise funktsioon koos argumendiga
  • Täienda koodi uue funktsiooniga, kus Enter klahvi (“väike enter” paremal) vajutades laetakse nö relva ehk laskemoon saab jälle väärtuse 10

Viimased postitused

Meist

metshein.com on pakkunud juba üle kümne aasta tasuta eestikeelseid infotehnoloogiaga seotud kursusi. Sama kurssi püütakse järgida ka edaspidi. Eesmärk muuta arvutiõpe võimalikult lihtsaks!

metshein.com: parim eestikeelne koolitusportaal

Autorist ja kontakt: kliki siia

Kontrolli tunnistust

Tööribale