[Erste Schritte mit Unity] 18. Skripts greifen auf Ressourcen zu

[Erste Schritte mit Unity] Skripts greifen auf Ressourcen zu

    Hallo zusammen, ich bin Lampard~~

    Willkommen bei der Unity-Blogreihe "Erste Schritte". Das Wissen, das ich gelernt habe, stammt von Lehrer Afa an Station B~Danke 

(1) Hintergrundmusik im Skript umschalten

(1) Globale Variablen definieren und Audioressourcen referenzieren

    Im vorherigen Blog haben wir etwas über AudioSource gelernt, eine Audiokomponente, mit der wir Hintergrundmusik abspielen können. Die erste Aufgabe heute besteht darin, zu lernen, im Skript die Hintergrundmusik zu steuern, um sie umzuschalten

    Zuerst müssen wir eine andere BGM finden, wie Fat Chens sehr beliebtes Lonely Brave, lasst es uns hinzufügen, um es zu bestätigen

     Dann müssen wir die Audioressource als globale Variable behandeln und im Skript deklarieren.Wir sehen, dass der Typ der Audioressource AudioClip ist , also definieren wir einfach zwei globale AudioClips.

    public AudioClip BGM1;
    public AudioClip BGM2;

    Der nächste Schritt besteht darin, die Ressource in die definierte globale Variable zu ziehen, damit wir sie im Code verwenden können

(2) Legen Sie die Clip-Eigenschaft von AudioSource fest

    Der nächste Schritt besteht darin, die Clip-Eigenschaft von AudioSource neu zuzuweisen. Wir müssen zuerst auf die AudioSource-Komponente verweisen , die in der vorherigen Lektion erlernte GetComponent-Methode verwenden und dann das Mausklick-Ereignis überwachen . Wenn es sich um die linke Taste handelt (der Parameter ist 0), dann spielen Sie BGM1. Wenn es ein Rechtsklick ist (der Parameter ist 1), dann spielen Sie den einsamen Mutigen

    Code zeigen wie folgt:

    void Update()
    {
        AudioSource audio = this.GetComponent<AudioSource>();
        if (Input.GetMouseButtonDown(0))
        {
            audio.clip = BGM1;
            Debug.Log("歌曲名字为" + BGM1.name);
            audio.Play();
        }

        if (Input.GetMouseButtonDown(1))
        {
            audio.clip = BGM2;
            Debug.Log("歌曲名字为" + BGM2.name);
            audio.Play();
        }

    }

    Zusammenfassend gibt es keinen Unterschied zwischen dem Zugriff auf eine Ressource und dem Zugriff auf eine Komponente oder ein Knotenobjekt, und auf sie kann zugegriffen werden, indem sie als globale Variable deklariert werden 

(2) Parameter vom Array-Typ

(1) Parameter vom Array-Typ []

    Freunde, die schon lange aufgepasst haben, wissen, dass ich letztes Jahr eine Klavierspielmethode geschrieben habe. Die Klangressourcen dort sind nicht gewöhnlich. Wenn wir sie jeweils als BGM1, BGM2 definieren, wird es sehr mühsam und hässlich, also Wir denken natürlich an eine bessere Datenstruktur zum Speichern, z. B. ein Array

    In C# verwenden wir []-Klammern, um ein Array zu deklarieren, das bei der Instanziierung von new erstellt wird, wie im folgenden Code:

声明一个包含 10 个整数的数组:

```
int[] myIntArray = new int[10];
```

声明一个包含 3 个字符串的数组:

```
string[] myStringArray = new string[3];
```

声明一个包含 5 个布尔值的数组,并初始化其元素:

```
bool[] myBoolArray = new bool[5] { true, false, true, false, true };

    In ähnlicher Weise können Sie beim Deklarieren eines globalen Parameters den Parameter auch als Array-Typ definieren, fügen Sie einfach ein []

(2) Zufällig Automusik abspielen

    Wenn wir zum Beispiel jetzt mit der Maus klicken müssen, wie schalten wir zufällig eine BGM um?

    Zuerst definieren wir ein globales AudioClip-Array

    public AudioClip[] BGMS;

    Dann können wir sehen, dass es noch so etwas im Compiler gibt, wir können die BGM einzeln hinüberziehen

    

    Als nächstes ändern wir die Code-Logik ein wenig: Jedes Mal, wenn die linke Maustaste gedrückt wird, wird eine Ganzzahl von 0 bis 2 zufällig zugewiesen, und dann wird die BGM an der Position des Arrays dem Clip-Attribut von AudioSource zugewiesen .

    void Update()
    {
        AudioSource audio = this.GetComponent<AudioSource>();
        if (Input.GetMouseButtonDown(0))
        {
            int randomNum = Random.Range(0, 3);
            audio.clip = BGMS[randomNum];
            Debug.Log("歌曲名字为" + audio.clip.name);
            audio.Play();
        }

    }

    Random muss die Funktion Random.Range verwenden, ihre Syntax lautet wie folgt:

Generieren Sie eine zufällige Dezimalzahl zwischen 0 und 1:

```

float randomFloat = Random.Range (0f, 1f);

```

Generieren Sie eine zufällige Ganzzahl zwischen 1 und 10:

```

int randomInt = Random.Range (1, 11);

```

    Schauen Sie sich schließlich den Effekt an ~

 

Okay, das war's für heute, danke euch allen fürs Lesen! ! !
Like und folge! ! !

おすすめ

転載: blog.csdn.net/cooclc/article/details/130332663