public void Merge() { List<BaseCell> heatCellsMerge; List<BaseCell> possibleMergers = controller.selectedUnits; heatCellsMerge = possibleMergers.FindAll(item => item.celltype == CellType.HEAT_CELL && item.GetComponent<HeatCell>().Inheat == true && item != this); if (heatCellsMerge.Count >= 1) { for (int o = 0; o < heatCellsMerge.Count; o++) { if (mergePartner == null || Vector3.Distance(this.transform.position, heatCellsMerge[o].transform.position) < Vector3.Distance(this.transform.position, mergePartner.transform.position) || (haveMergePartner == false && mergePartner.haveMergePartner == false)) { mergePartner = heatCellsMerge[o].GetComponent<HeatCell>(); mergePartner.mergePartner = this; haveMergePartner = true; mergePartner.haveMergePartner = true; } } } }
void MergingTheCells(HeatCell other) { float distance = Vector3.Distance(this.transform.position, other.transform.position); if (distance < GetComponent<SphereCollider>().radius * 2.0f) { Vector3 trackingPos = this.transform.position; Quaternion trackingRot = this.transform.rotation; GameObject kTier2Heat = Instantiate(Tier2Heat, trackingPos, trackingRot) as GameObject; kTier2Heat.GetComponent<CellSplitAnimation>().currentLevel = currentLevel; kTier2Heat.GetComponent<CellSplitAnimation>().currentProtein = currentProtein; kTier2Heat.GetComponent<CellSplitAnimation>().isAIPossessed = isAIPossessed; kTier2Heat.GetComponent<CellSplitAnimation>().originCell = this; kTier2Heat.GetComponent<CellSplitAnimation>().originCell1 = other; if (!sound_manager.sounds_evolution[5].isPlaying) { sound_manager.sounds_evolution[5].Play(); } Deactive(); other.Deactive(); } else { Move(other.transform.position); } }
public void InitMapWithInitializeTemperature_Zero() { Heatmap = new HeatCell[Heatmapsize_row][]; for (int i = 0; i < Heatmapsize_row; i++) { HeatCell[] tempz = new HeatCell[Heatmapsize_column]; for (int j = 0; j < Heatmapsize_column; j++) { tempz[j] = new HeatCell(); Vector2 m_center = CaluPosition(i, j); tempz[j].SetCenterPosition(m_center); //if(i< Heatmapsize_column-j) //{ // tempz[j].defaultheatvalue = 3f; // tempz[j].SetHeat(3f); //} //else //{ // tempz[j].defaultheatvalue = 6f; // tempz[j].SetHeat(6f); //} tempz[j].defaultheatvalue = 20f; tempz[j].SetHeat(20f); Vector3 m_3Dpositon; m_3Dpositon.x = m_center.x; m_3Dpositon.y = 2; m_3Dpositon.z = m_center.y; /////////////////////ceshi //if (i > Heatmapsize_column - j) //{ float m_value = this.FindHeatValueForCell(m_3Dpositon); if (m_value != 0) { tempz[j].SetHeat(m_value); tempz[j].IsHeatSourceOrNot = true; tempz[j].defaultheatvalue = m_value; } //} ///////////////////////////// } this.Heatmap[i] = tempz; } }