private void UpdateForCylinder(Vector3 wpos) { cylinderReticleForEditor.EnableRenderer(true); if (Input.GetKey(KeyCode.LeftControl) || Input.GetMouseButtonDown(1)) { firstClickPosition = null; } if (firstClickPosition.HasValue) { cylinderReticleForEditor.SetPositionsAndRadius(firstClickPosition.Value, wpos, BrushSize); } else { cylinderReticleForEditor.SetPositionsAndRadius(wpos, wpos + Vector3.right, BrushSize); } if (clicking && Terrain.OperationsManager.IsReadyToComputeAsync) { if (!firstClickPosition.HasValue) { firstClickPosition = wpos; } else { Terrain.OperationsManager .Add(Cylinder.CreateFromUnityWorld(Terrain, dig, firstClickPosition.Value, wpos, BrushSize, voxelType), true) .PerformAll(asyncOperations); firstClickPosition = null; } } }
protected virtual IOperation CreateOperationFromEditor(Vector3 start, Vector3 end, TerrainToolEditor editor) { var voxelType = EditorUtils.GetVoxelTypeFromIndex(VoxelTypeIndex, editor.Terrain.VoxelTypeSet); return(Cylinder.CreateFromUnityWorld(editor.Terrain, Dig, start, end, Radius, voxelType)); }