Ich habe ein Spielobjekt namens "Student", das ein Skript angehängt hat, dann dupliziere ich es manuell (Strg + D), so dass jedes duplizierte Schülerobjekt dasselbe Skript hat Komponente. hier ist das Skript (nicht voll, weil zu lang)Prüfe den Wert einer Variablen von jedem Spielobjekt, das mit einem Skript verbunden ist
public class StudentScript : MonoBehaviour {
private Animator animator;
float sec;
public int m;
public GameManage gm;
void Start() {
animator = GetComponent<Animator>();
sec = 0f;
m = 0;
}
void Update() {
sec+=Time.deltaTime;
if (m == 5 && animator.GetInteger ("Behav") == 0) {
animator.SetTrigger ("Finish");
}
}
//this is called from another script
public void ResetStudentBehaviour(){
if (animator.GetInteger ("Behav") != 0) {
animator.SetInteger ("Behav", 0);
sec = 0f;
if (m < 5) {
m++;
}
}else
Debug.Log ("student done <3");
}
}
i => will, wenn jeder Student m Wert m == 5 hat, dann Spiel beendet. was ich habe, ist bisher getan StudentScript von GameManage Skript aufgerufen (öffentlich, so habe ich die ganze Instanz manuell eingestellt), dann wird der Wert von m von jedem Schüler überprüfen
public StudentScript stu1, stu2;
void Update() {
if (stu1.m == 5 && stu2.m == 5) {
StartCoroutine (ChangeScene());
}
}
IEnumerator ChangeScene(){
yield return new WaitForSeconds (10);
SceneManager.LoadScene(5);
}
gibt es eine einfache Möglichkeit zu überprüfen, m Wert aller Schüler Objekt ohne if (stu1.m == 5 && stu2.m == 5)
zu verwenden, da in jeder Ebene, die Zahl der Schüler unterschiedlich ist, so möchte ich für alle Level ein dynamisches Skript machen
Ich arbeitete am zweiten Teil Ihrer Antwort, aber Sie haben es gepostet. Ich mag das besser, weil einige der Linq-Funktionen nicht in iOS funktionieren und einige, die Arbeit Arbeitsspeicher A-Los zuweisen. Das einzige, was übrig bleibt, ist, den zweiten Teil Ihrer Frage in eine Funktion zu stellen. Vielleicht boolean eine Funktion namens 'isGameOver'. Es ist nicht notwendig, aber es wird den Code wiederverwendbar machen. Jetzt wird die Update-Funktion weniger Code haben. – Programmer
Smart, das wusste ich nicht über iOS. Nochmals vielen Dank für das Wissen haha. Ich werde es in eine Funktion für die Vollständigkeit stecken! Ich denke, 'All' ist in Ordnung für den Speicher? Ich werde es jetzt profilieren und überprüfen. –
Entschuldigung, aber wie StudentScripts zu deklarieren? – Eeva