perjantai 12. kesäkuuta 2015

Unity: C#-perusteet

https://www.youtube.com/watch?v=apJoi_YFVqk

Variablet eli muuttujat pitävät sisällään tietoa.

------------------
//variables.cs:

using UnityEngine;
using System.Collections;

public class Variables : MonoBehaviour

//MonoBehav. on yläluokka, jonka alla kaikki muut skriptit ovat.
//Huomaa että määritellyn luokan pitää olla sama kuin skriptitiedoston nimi:
//ko. tapauksessa Variables.

{
    public string myName = "Jonathan";
    //luodaan myName-niminen "julkinen" tekstimuuttuja ja annetaan sille arvo "Jonathan".

    public float speed = 5.5f;
    //luodaan speed-niminen julkinen desimaalilukumuuttuja ja annetaan sille arvo 5.5. Huomaa f-kirjain!

    private int myAge 22;
    //luodaan myAge-niminen "yksityinen" kokonaislukumuuttuja ja annetaan sille arvo 22.
    //Koska ko. muuttuja on yksityinen, mikään muu luokka ei voi päästä siihen käsiksi,
    //vain tämä skripti.

    public bool isCool = true;
    //luodaan isCool-niminen "julkinen" totuusarvomuuttuja ja annetaan sille arvoksi "true" eli tosi.
}

------------------
//IfThenStatements.cs:

using UnityEngine;
using System.Collections;

public class IfThenStatements : MonoBehaviour
{
    public int myAge = 22;
    private bool canDrink = false;
   
    void Start () //Ko. funktio suoritetaan ohjelman käynnistyessä.
    {
        if (myAge > 17)
        {
            Debug.Log("Olen yli 17-vuotias.");
            canDrink = true; //Muutetaan canDrink-boolean todeksi.   
        }
        else if (myAge < 5)
        {
            Debug.Log("Olen alle 5-vuotias.");
            canDrink = false; //Muutetaan canDrink-boolean epätodeksi.   
        }
        else
        {
            Debug.Log("Ikäni on 5 ja 17 välillä.");
            canDrink = false;
        }
        //Jos kok.luku myAge on suurempi kuin 17, tehdään if-toiminto,
        //mutta jos kok.luku myAge on pienempi kuin 5, tehdään else if toiminto.
        //Jos kok.luku on 5 ja 17 välillä, tehdään else-toiminto.
    }
   
    void Update () //Ko. funktiota suoritetaan kokoajan ohjelman aikana.
    {
        if (canDrink == true)
        {
            Debug.Log("Saat juoda!");
        }
        else
        {
            Debug.Log("Olet liian nuori juomaan!");
        }
        //Jos boolean-arvo canDrink on tosi, tehdään if-toiminto, muuten else-toiminto.
    }
}

------------------
//LogicOperators.cs:

using UnityEngine;
using System.Collections;

public class LogicOperators : MonoBehaviour
{
    public int a;
    public int b;
    public int c;
    private int average;

    void Start ()
    {
        average = (a + b + c) / 3;
        Debug.Log(average);
    // Määritetään kok.luku averagen arvo laskemalla a, b ja c yhteen ja jakamalla summa kolmella.
    // Tämän jälkeen tulostetaan muuttujan average arvo konsoliin.
    }
}
------------------
//SwitchStatements.cs

using UnityEngine;
using System.Collections;

public class SwitchStatements : MonoBehaviour
{
    public int a;
    public int b;
    public int c;
    private int average;

    void Start ()
    {
        average = (a + b + c) / 3;
       
        switch(average)
        {
            case 16:
                Debug.Log("Keskiarvo on 16!");
                break;
            case 10:
                Debug.Log("Keskiarvo on 10!");
                break;
            default:
                Debug.Log("Keskiarvo on jokin muu kuin 16 tai 10.");
                break;
        //Jos kok.luvun average-arvo on 16 tai 10, tehdään kaksi ylintä casea, muuten tehdään default-case.
        //Ikään kuin tehokkaampi tapa ilmaista if-else-lausekkeita.
        }
    }
}

--------------------
//SwitchStatements.cs, toinen esimerkki:

using UnityEngine;
using System.Collections;

public class SwitchStatements : MonoBehaviour
{
    public int selectedSkillLevel;
    private int easy = 0, medium = 1, hard = 2;

    void Start ()
    {
        switch(selectedSkillLevel)
        {
        case 0:
            Debug.Log("You selected easy!")
            break;
        case 1:
            Debug.Log("You selected medium!")
            break;
        case 2:
            Debug.Log("You selected hard!")
            break;
        default:
            Debug.Log("Invalid skill level!");
            break;
        //Jos kok.luvun selectedSkillLevel arvoksi laitetaan 0-2, tehdään caset 0-2,
        //muuten tehdään default-case.
        }
    }
}
--------------------
//Loops.cs:

//For-luuppi:

using UnityEngine;
using System.Collections;

public class Loops : MonoBehaviour
{
    public int apples = 100;

    void Start ()
    {
        for(int i = 1; i <= apples; i++)
        {
            Debug.Log(i);
        }
            Debug.Log("All the apples found!");
        //Kok.luku i:n arvo on alussa 1.
        //Niin kauan, kuin i-arvo on pienempi tai yhtä suuri kuin apples-arvo,
        //kasvatetaan i-arvoa yhdellä (i++)
        //kunnes apples-arvo saavutetaan.
        //Tämän jälkeen tulostetaan konsoliin alempi debuglog.
    }
}


//Foreach-luuppi, periaatteessa sama kuin for-luuppi:

using UnityEngine;
using System.Collections;

public class Loops : MonoBehaviour
{
    public int[] numbers = {5, 6, 7, 8}; //Array

    void Start ()
    {
        foreach(var number in numbers)
        {
            Debug.Log(number);
        }
        //Tulostetaan konsoliin kukin numbers-arrayn arvo.
    }
}


//While-luuppi:
//Vaarallinen luuppi, koska voidaan päätyä loputtomaan luuppiin ja Unity/kone voi kaatua.

using UnityEngine;
using System.Collections;

public class Loops : MonoBehaviour
{
    public int apples = 100;


    void Start ()
    {
        while(apples > 1)
        {
            Debug.Log(apples);
            apples--;   
        }
        Debug.Log(The while loop finished! Yay for no crash!");
        //Niin kauan, kuin apples on arvo on suurempi kuin yksi, tulostetaan apples-arvo konsoliin
        //ja vähennetään apples-arvoa yhdellä.
        // Tämän jälkeen tulostetaan alempi debuglog.
    }

}


//Do-luuppi; luuppi tehdään ainakin kerran:

using UnityEngine;
using System.Collections;

public class Loops : MonoBehaviour
{
    void Start ()
    {
        do
        {
            Debug.Log("Apples: " + apples);
            apples--;
        }while(apples >= 1);
    }
}

Ei kommentteja:

Lähetä kommentti