private void Awake() { if (instance != null && instance != this) { Destroy(gameObject); } else { instance = this; } }
public List <BaseInfo> PlaceBases() { basesInfo = FindObjectOfType <BasesInfo>(); List <BaseInfo> basesPlaced = new List <BaseInfo>(); foreach (BaseInfo baseInfo in basesInfo.baseInfos) { int nCharacters = (int)baseInfo.GlobalBlackboard.GetValue("totalNumberOfCharacters"); if (nCharacters > 0) { GameObject myBase = Instantiate(baseInfo.BasePrefab, findBasePosition(), Quaternion.identity, parentTransform); baseInfo.GlobalBlackboard.UpdateValue("baseLocation", myBase.transform.position); rotateBase(myBase.transform); myBase.GetComponent <Base>().SetGlobalBlackboard(baseInfo.GlobalBlackboard); basesPlaced.Add(baseInfo); FindObjectOfType <NavMeshSurface>().BuildNavMesh(); } } return(basesPlaced); }
void placeMenuCharacters() { BasesInfo = FindObjectOfType <BasesInfo>(); baseManager = FindObjectOfType <BaseManager>(); baseManager.ResetBaseManager(); BaseInfo[] baseInfos = BasesInfo.baseInfos; Vector3[] positions = GeometryUtilities.DivideCircleEquallyXZ(center.position, radius, baseInfos.Length, 0f); InputField[] inputFields = new InputField[baseInfos.Length]; characters = new Transform[baseInfos.Length]; for (int i = 0; i < baseInfos.Length; i++) { Quaternion lookAt = Quaternion.LookRotation(positions[i] - center.position); GameObject character = Instantiate(baseInfos[i].CharacterMenuPrefab, positions[i], lookAt); characters[i] = character.transform; InputField inputField = Instantiate(inputFieldPrefab, inputCanvas).GetComponent <InputField>(); inputField.SetGlobalBlackboard(baseInfos[i].GlobalBlackboard); baseInfos[i].GlobalBlackboard.ResetBlackBoard(); inputFields[i] = inputField; } inputFieldsController.SetInputFields(inputFields); GameGlobalBlackboard.Instance.ResetBlackBoard(); }