Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    public void RepositionBuilding(BuildingComp building)
    {
        SensorComp sensorComp = GameManager.Instance.VillageComp.SensorGroupComp.SensorCompDic[building.Data.SlotID];

        building.transform.position = sensorComp.transform.position;
    }
Exemplo n.º 3
0
    // 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);
            }
        }
    }
Exemplo n.º 4
0
	// 恢复错位建筑
	public void RepositionBuilding(BuildingComp building)
	{
		SensorComp sensorComp = SceneManager.Instance.SensorGroupComp.SensorCompDic[building.Data.SlotID];
		building.transform.position = sensorComp.transform.position;
	}