void TouchCell(Vector3 position) { HexCoordinates coordinates = HexCoordinates.FromPosition(position); HexCell cell = FindCell(coordinates); //保存保存下一格数据,方便对比 NextCell = cell; //判断点击格是否是当前格的周围且不能是当前格 if (((Mathf.Abs(NextCell.coordinates.X - CurrentCell.coordinates.X) + Mathf.Abs(NextCell.coordinates.Y - CurrentCell.coordinates.Y) + Mathf.Abs(NextCell.coordinates.Z - CurrentCell.coordinates.Z)) < 3) && ((NextCell.coordinates.X != CurrentCell.coordinates.X) || (NextCell.coordinates.Z != CurrentCell.coordinates.Z) || (NextCell.coordinates.Y != CurrentCell.coordinates.Y))) { //if (NextCell.coordinates.X> Math.Ceiling((double)-NextCell.coordinates.Z/2)&& NextCell.coordinates.X < Math.Ceiling((double)16 -NextCell.coordinates.Z / 2)-1 // && NextCell.coordinates.Z>0&& NextCell.coordinates.Z<grid.height-1) //{ lastHitPoint = position; footCount++; //走到新格子就加一 if (NextCell.status != 3) { StepCount++; } cell.color = grid.CellColor[1]; grid.hexMesh.Triangulate(grid.cells); //以新的颜色重新渲染单元格,每一次只要需要改变格子颜色 //都需要这句话来重新渲染 playerPos = cell.transform.position; //使被点击格与摄像头Y轴一致并移动 //Vector3 CellPos = cell.transform.position; //CellPos.y = start.transform.position.y; //Debug.Log(CellPos); //移动 //start.transform.position = Vector3.MoveTowards(start.transform.position, CellPos, speed * Time.deltaTime); ; //更新当前格 PrintArround(grid.CellColor[0], CurrentCellAround); UpdateArround(NextCell, NextCellAround, NextTextAround); PrintArround(grid.CellColor[2], NextCellAround); PrintCell(grid.CellColor[3], CurrentCell); CurrentCell = NextCell; //方政言加,为实现网格内容探测 //gridcontent.CoroutineStop(); gridcontent.lostAround(CurrentTextAround); gridcontent.pass(NextText, NextTextAround); gridcontent.detectAround(NextTextAround); grid.texts[CurrentText].enabled = false; gridcontent.JudgePortal(CurrentText); CurrentText = NextText; Message.IncidentCheck(gridcontent.contents[CurrentText].con, StepCount); //方政言加end UpdateArround(CurrentCell, CurrentCellAround, CurrentTextAround); PrintCell(grid.CellColor[1], CurrentCell); //} } }