// PRE: Building and game building have to be set before strat is called private void Start() { // set nr of building if not already given by game building if (gameBuilding.nr == -1) { gameBuilding.nr = allBuildingScripts.Count; BuildingScript par = Identify(ParentBuildingNr); if (par) { par.AddChildBuilding(this); } } // Update allBuildings collection allBuildingScripts.Add(this); tag = Building.Tag; // make building a clickable object //co = gameObject.AddComponent<ClickableObject>(); // co.clickable = false; if (currentModel == null) { for (int i = 0; i < MaxStages; i++) { transform.GetChild(i).gameObject.SetActive(false); } SetCurrentModel(); } audioSource = Instantiate(AudioManager.Instance.buildingAudioPrefab, transform).GetComponent <AudioSource>(); // Add and disable Campfire script if (HasFire) { campfire = gameObject.AddComponent <Campfire>(); campfire.woodAmount = gameBuilding.campFireWoodAmount; campfire.enabled = !Blueprint; if (Name == "Lagerfeuer") { campfire.SetIsBigCampfire(false); } else if (Name == "Grosse Feuerstelle") { campfire.SetIsBigCampfire(true); } audioSource.clip = AudioManager.Instance.campfire; audioSource.loop = true; //cf.maxIntensity = Mathf.Clamp(GridWidth, 1, 1.8f); } fieldPlant = NatureObject.Get("Korn"); // init blueprint UI blueprintCanvas = transform.Find("CanvasBlueprint"); panelMaterial = new List <Transform>(); textMaterial = new List <Text>(); for (int i = 0; i < blueprintCanvas.Find("Cost").childCount; i++) { Transform pm = blueprintCanvas.Find("Cost").GetChild(i); panelMaterial.Add(pm); textMaterial.Add(pm.Find("TextMat").GetComponent <Text>()); } LayoutRebuilder.ForceRebuildLayoutImmediate(blueprintCanvas.GetComponent <RectTransform>()); buildingMaterial = meshRenderer.materials; blueprintMaterial = new Material[buildingMaterial.Length]; for (int i = 0; i < buildingMaterial.Length; i++) { blueprintMaterial[i] = BuildManager.Instance.blueprintMaterial; } // Finish building if no costs if (BlueprintBuildCost.Count == 0) { FinishBuilding(); } else { ChangeTerrainGround(); } //blueprintCanvas.gameObject.SetActive(false); blueprintCanvas.gameObject.SetActive(false); // init range canvas rangeCanvas = transform.Find("CanvasRange").transform; rangeImage = rangeCanvas.Find("Image").GetComponent <Image>(); // Make selected person go build this building PersonScript ps = PersonScript.FirstSelectedPerson(); if (ps) { ps.AddTargetTransform(transform, true); } // if building has a custom collision radius, disable default collider and add a capsule collider /*if (CollisionRadius > float.Epsilon) * { * gameObject.AddComponent<CapsuleCollider>(); * myCollider.enabled = false; * }*/ if (ViewRange > 0) { /* TODO: optimize code! */ /* * foreach (NatureObjectScript p in Nature.nature) * { * p.UpdateBuildingViewRange(); * } * foreach (ItemScript p in ItemScript.allItemScripts) * { * p.UpdateBuildingViewRange(); * } * foreach (PersonScript p in PersonScript.wildPeople) * { * p.UpdateBuildingViewRange(); * } * foreach (AnimalScript a in AnimalScript.allAnimals) * { * a.UpdateBuildingViewRange(); * }*/ gameObject.AddComponent <SimpleFogOfWar.FogOfWarInfluence>().ViewDistance = ViewRange; } // start coroutine StartCoroutine(GameBuildingTransform()); //recruitingTroop = new List<Troop>(); }