void Update() { RaycastHit hit; Ray ray = Camera.mainCamera.ScreenPointToRay(Input.mousePosition); if (!pressed && Input.GetMouseButtonDown(0)) { pressed = true; } if (pressed && Input.GetMouseButtonUp(0)) { pressed = false; terrain.UpdateMesh(changedPoints); changedPoints.Clear(); } if (pressed && Physics.Raycast(ray, out hit, Mathf.Infinity)) { if (terrain.IsTerrain(hit.transform) != null) { Vector3 pos; int x, y; float p = 0.1f; /*[1.04]*/ //pos = hit.point - terrain.transform.position; pos = terrain.transform.InverseTransformPoint(hit.point); pos += new Vector3(terrain.tileSize / 2, 0.0f, terrain.tileSize / 2); x = (int)Mathf.Abs(pos.x / terrain.tileSize); y = (int)Mathf.Abs(pos.z / terrain.tileSize); terrain.DeformPointTerrain(x, y, false, p, 4.0f, changedPoints); } } }
void EditBuilding() { if (!CheckEditBuilding()) { return; } RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Vector3 pos; int x, y; if (Physics.Raycast(ray, out hit, Mathf.Infinity, editCrystalLayerMask)) { PATileTerrain tt = tileTerrain.IsTerrain(hit.transform); NestBuilding hitNest = hit.transform.GetComponent <NestBuilding>(); HatchBuilding hitHatch = hit.transform.GetComponent <HatchBuilding>(); if (tt != null) { pos = tileTerrain.transform.InverseTransformPoint(hit.point); x = (int)Mathf.Abs(pos.x / tileTerrain.tileSize); y = (int)Mathf.Abs(pos.z / tileTerrain.tileSize); PATileTerrain.PATile tile = tileTerrain.GetTile(x, y); PATileTerrain.PABuildingTile buildingTile = PATileTerrain.PABuildingTile.GetByTile(tileTerrain, tile); if (toPlaceBuilding is NestBuilding && buildingTile.keyTile.affectShuijing != null) { NestBuilding nest = toPlaceBuilding as NestBuilding; PlaceNest(nest, buildingTile); toPlaceBuilding = null; //Messenger.Broadcast(TerrainManagerEvent_PlaceBuilding); } } else if (hitNest != null && toPlaceBuilding == null) { Messenger.Broadcast(UIEvent.UIEvent_ShowSelectNest); } else if (hitHatch != null && toPlaceBuilding == null) { Messenger <int> .Broadcast(UIEvent.UIEvent_ShowHatch, hitHatch.hatchId); } } }