コード例 #1
0
 private void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(gameObject);
     }
     else
     {
         instance = this;
     }
 }
コード例 #2
0
    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);
    }
コード例 #3
0
 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();
 }