private void CopyClassValues(LecturerStats sourceComp, LecturerStats targetComp) { FieldInfo[] sourceFields = sourceComp.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); int i = 0; for (i = 0; i < sourceFields.Length; i++) { var value = sourceFields[i].GetValue(sourceComp); sourceFields[i].SetValue(targetComp, value); } }
public void AddLecturersToPool(int numToAdd) { for (int i = 0; i < numToAdd; i++) { GameObject lecturerObject = Instantiate(pooledLecturerPrefab, selectionPoolGameObject.transform); LecturerStats lecturerStats = lecturerObject.GetComponent <LecturerStats>(); if (lecturerStats) { lecturerStats.RandomiseStats(); } } foreach (LecturerInfoFrameManager lecturerInfoManager in lecturerInfoFrameManagerScripts) { lecturerInfoManager.RefreshLecturerInfoUI(); } }
public void HireLecturer(LecturerStats lecturerToHire) { GameObject hiredLecturers = Instantiate(hiredLecturerPrefab, hiredPoolGameObject.transform); LecturerStats enrolledStats = hiredLecturers.GetComponent <LecturerStats>(); PolyNavAgent polyNavAgent = hiredLecturers.GetComponent <PolyNavAgent>(); if (enrolledStats) { CopyClassValues(lecturerToHire, enrolledStats); enrolledStats.isHired = true; } if (polyNavAgent) { polyNavAgent.map = navMesh; polyNavAgent.enabled = true; } Destroy(lecturerToHire.gameObject); StartCoroutine(RefreshAfterUpdate()); OnHiredLecturerChange(GetHiredLecturerCount()); }