Ich habe einige Schaltflächen, die jeweils eine Ebene darstellt und möchten den Listener programmgesteuert hinzufügen, aber nicht ganz vertraut mit der Lambda-Funktion von C# (vielleicht etwas Verschluss Sache?), Es ist, was ich jetzt mache :Einheit hinzufügen Schaltfläche mit Skript programmgesteuert mit Parameter
for(int i=0; i<levels.Count; i++){
//omit the making a button snippet
button.GetComponent<Button>().onClick.AddListener(() =>
{
Debug.Log("load Scene");
ApplicationModel.currentLevel = levels[i];
SceneManager.LoadScene("Game");
//Application.LoadLevel("Game");
});
}
aber die Linie:
ApplicationModel.currentLevel = levels[i];
levels
ist ein List<Level>
und ApplicationModel
ist eine Klasse, die Informationen hält nach this post aber es hält eine ArgumentOutOfRang geben eException:
ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
System.Collections.Generic.List`1[Level].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
GameLevelManger+<initScrollPanel>c__AnonStorey0.<>m__0() (at Assets/GameLevelManger.cs:72)
Danke, es hilft. Es wird noch größer, wenn Sie weitere Referenz hinzufügen können, um weiterzulesen: D – armnotstrong
@armnotstrong, wenn es geholfen hat, würde ich es schätzen, wenn Sie die Antwort als akzeptiert markieren und sicher, dass ich einige Links für Referenzen anhängen werde. –
danke @Ousmane, ich werde hinein graben: D – armnotstrong