Jump to content
Unity Insider Forum

Code Erklärung


Mozart53
 Share

Recommended Posts

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GameManager : MonoBehaviour
{
    public MemoryCard firstMemory;
    public MemoryCard seconMemory;
    
    public void clicked(MemoryCard card)
    {
        if (firstMemory == null)
        {
            firstMemory = card;
        }
        else
        {
            seconMemory = card;

            if (firstMemory.id == seconMemory.id)
            {
                Destroy(firstMemory.gameObject);
                Destroy(seconMemory.gameObject);
            }
                firstMemory = null;
                seconMemory = null;
            
        }
    }
}

//2. Klasse

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MemoryCard : MonoBehaviour
{
    public int id;

    private void OnMouseDown()
    {
        FindObjectOfType<GameManager>().clicked(this);
    }
}

Und zwar geht es um das public MemoryCard firstMemory. Wozu schreiben wir das MemoryCard rein? Ich weiss, dass es die 2. Klasse ist, aber verstehe nicht den HIntergrund dahinter. Auch das MemoryCard card im Parameter ist mir nicht ganz klar.

 

Meine Erklärung wäre: Wir schrieben die klasse vorher rein um die id in der Variable nutzen zu können (frstMemory.id) und den Paramter um es im 2. zu Initialisieren (clicked.this).

Link to comment
Share on other sites

Hallo

 

Damit machst du jeweils den Typ der Variable deutlich. firstMemory ist eine Variable vom Typ MemoryCard und bei clicked wird eine Variable des Typs MemoryCard übergeben!

 

Eventuell macht es Sinn, sich zunächst einen kleinen Kurs C# anzuschauen...

 

Christoph

Link to comment
Share on other sites

C# ist eine statisch-typstarke Sprache. Da heißt, dass (prinzipiell...) jede Variable einen Typ haben muss, der definiert, welche Werte drinstehen können.

Du kannst z.B. schreiben:

int zahl = 5;
string wort = "Nase";

aber nicht:

int zahl = "Nase";

Nur int-Werte können der Variable "zahl" zugewiesen werden, und "Nase" ist kein int, sondern ein string.

Es gibt auch typschwache (Javascript, PHP) oder dynamisch getypte Sprachen (Python). Statisch-typstarke Sprachen werden eher benutzt, wenn es was zu kompilieren gibt, da diese Eigenschaften bestimmte Sicherheiten geben. Bei Javascript merkst du erst bei der Ausführung, wenn du bei deinem Auto Gas gibst, aber dein Auto in Wirklichkeit eine Zahl ist.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...