public void AddNewBuilding(BuildingData newBuildingData) { string prefabPath = "Building/Building_" + newBuildingData.Type.ToString() + "_" + newBuildingData.Level.ToString("D2"); GameObject prefab = Resources.Load <GameObject>(prefabPath); GameObject newBuildingGO = GameObject.Instantiate(prefab) as GameObject; newBuildingGO.transform.parent = transform; BuildingComp buildingComp = newBuildingGO.GetComponent <BuildingComp>(); buildingComp.Data = newBuildingData; BuildingCompList.Add(buildingComp); RepositionBuilding(buildingComp); }
public void RepositionBuilding(BuildingComp building) { SensorComp sensorComp = GameManager.Instance.VillageComp.SensorGroupComp.SensorCompDic[building.Data.SlotID]; building.transform.position = sensorComp.transform.position; }
// Update is called once per frame void Update() { if (!GameManager.Instance.IsFighting) { gameObject.SetActive(false); } ShareTimer += Time.deltaTime; if (State == EEnemyState.Hide) { if (ShareTimer > HIDE_TIME) { int id = Random.Range(0, GameManager.Instance.VillageComp.BuildingGroupComp.BuildingCompList.Count - 1); BuildingComp buildingComp = GameManager.Instance.VillageComp.BuildingGroupComp.BuildingCompList[id]; if (buildingComp) { transform.position = buildingComp.transform.position + Vector3.up * 2; State = EEnemyState.HideToShow; ShareTimer = 0; CurSlot = buildingComp.Data.SlotID; //animation["HideToShow"].normalizedSpeed = TO_SHOW_TIME; //animation.Play("HideToShow"); } } } else if (State == EEnemyState.HideToShow) { if (ShareTimer > TO_SHOW_TIME) { State = EEnemyState.Show; ShareTimer = 0; } else { renderer.material.color = new Color(1, 1, 1, ShareTimer / TO_SHOW_TIME); } } else if (State == EEnemyState.Show) { if (ShareTimer > SHOW_TIME) { State = EEnemyState.ShowToHide; ShareTimer = 0; //animation["HideToShow"].normalizedSpeed = TO_HIDE_TIME; //animation.Play("ShowToHide"); } } else if (State == EEnemyState.ShowToHide) { if (ShareTimer > TO_HIDE_TIME) { State = EEnemyState.Hide; ShareTimer = 0; } else { renderer.material.color = new Color(1, 1, 1, 1 - ShareTimer / TO_SHOW_TIME); } } }
// 恢复错位建筑 public void RepositionBuilding(BuildingComp building) { SensorComp sensorComp = SceneManager.Instance.SensorGroupComp.SensorCompDic[building.Data.SlotID]; building.transform.position = sensorComp.transform.position; }