У меня есть игровой объект под названием «студент», к которому прикреплен скрипт, затем я дублирую его вручную (ctrl+D), чтобы каждый дублированный объект студента имел один и тот же компонент скрипта. вот скрипт (не полный, потому что слишком длинный)
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");
}
}
я хочу => если у каждого ученика m значение m == 5, то игра закончена. то, что я сделал до сих пор, называется StudentScript из сценария GameManage (общедоступный, поэтому мне нужно установить все экземпляры вручную), затем проверьте значение m для каждого ученика.
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);
}
есть ли простой способ проверить значение m всего объекта ученика без использования if (stu1.m == 5 && stu2.m == 5)
, потому что на каждом уровне количество учеников разное, поэтому я хочу создать динамический скрипт для всех уровней