public override void Draw(UFSession session, string filename) { DrawTool drawTool = new DrawTool(session); drawTool.AddNewModel(filename); Point origin = new Point(0, 0, 0); Tag[] circle = new Tag[] { drawTool.DrawCircle(origin, nutDiam / 2) }; Tag[] outCircle = drawTool.Extrude(circle, new double[] { 0.0, 0.0, 1.0 }, "0.0", new string[] { "0", height.ToString() }, FeatureSigns.Nullsign); drawTool.MakeHoleZ(holeDiam, holeHeight, 120 * Math.PI / 180, new Point(0, holeDist / 2, 0), 1); drawTool.MakeHoleZ(holeDiam, holeHeight, 120 * Math.PI / 180, new Point(0, -holeDist / 2, 0), 1); drawTool.MakeHoleZ(holeDiam, holeHeight, 120 * Math.PI / 180, new Point(holeDist / 2, 0, 0), 1); drawTool.MakeHoleZ(holeDiam, holeHeight, 120 * Math.PI / 180, new Point(-holeDist / 2, 0, 0), 1); Tag[] innerCircle = new Tag[] { drawTool.DrawCircle(origin, (threadMaxDiam - 2) / 2) }; drawTool.Extrude(innerCircle, new double[] { 0.0, 0.0, 1.0 }, "0.0", new string[] { "0", height.ToString() }, FeatureSigns.Negative); Tag outputTag = outCircle[0]; Tag model; session.Modl.AskFeatBody(outputTag, out model); Tag[] edges; session.Modl.AskBodyEdges(model, out edges); List <Tag> chamfers = new List <Tag>(); Tag edge; for (int i = 0; i < 2; i++) { session.Modl.AskListItem(edges, i, out edge); chamfers.Add(edge); } drawTool.MakeChamfer(chamfers.ToArray(), 45, outChamfer); chamfers.Clear(); for (int i = 3; i < 10; i += 2) { session.Modl.AskListItem(edges, i, out edge); chamfers.Add(edge); } drawTool.MakeChamfer(chamfers.ToArray(), 45, holeChamfer); Tag[] facesArray; session.Modl.AskFeatBody(outputTag, out model); session.Modl.AskBodyFaces(model, out facesArray); Tag startFace, threadFace; session.Modl.AskListItem(facesArray, 11, out threadFace); session.Modl.AskListItem(facesArray, 1, out startFace); drawTool.MakeThread(threadMaxDiam, threadMaxDiam - 2, threadMaxDiam - 1, height, threadStep, threadFace, startFace); drawTool.MakeCylHoleZ(threadMaxDiam, 45 * Math.PI / 180, origin, 1, innerChamfer); drawTool.MakeCylHoleZ(threadMaxDiam, 45 * Math.PI / 180, new Point(0, 0, height), -1, innerChamfer); drawTool.SaveModel(); }
void drawFrontier() { for (int i = 1; i <= layerNum; i++) { GameObject obj = new GameObject(); obj.transform.parent = transform; DrawTool.DrawCircle(obj.transform, obj.transform.position, globalConfig.radius * i / layerNum); } }
public override void Draw(UFSession session, string filename) { DrawTool drawTool = new DrawTool(session); drawTool.AddNewModel(filename); Point origin = new Point(0, 0, 0); Tag[] circle = new Tag[] { drawTool.DrawCircle(origin, diam / 2) }; Tag[] outCircle = drawTool.Extrude(circle, new double[] { 0.0, 0.0, 1.0 }, "0.0", new string[] { "0", (length - pushLength).ToString() }, FeatureSigns.Nullsign); drawTool.MakeCylHoleZ(innerChamferDiam, innerChamferAngle * Math.PI / 180, origin, 1); Tag[] hexagon = drawTool.DrawHexagon(holeDiam, holeS, origin); drawTool.Extrude(hexagon, new double[] { 0.0, 0.0, 1.0 }, "0.0", new string[] { "0", holeHexLength.ToString() }, FeatureSigns.Negative); drawTool.MakeHoleZ(holeS, holeTotalLength - holeHexLength, 120 * Math.PI / 180, new Point(0, 0, holeHexLength), 1); Tag outputTag = outCircle[0]; Tag model; session.Modl.AskFeatBody(outputTag, out model); Tag[] facesArray; session.Modl.AskFeatBody(outputTag, out model); session.Modl.AskBodyFaces(model, out facesArray); Tag startFace, threadFace; session.Modl.AskListItem(facesArray, 1, out threadFace); session.Modl.AskListItem(facesArray, 3, out startFace); drawTool.MakeThread(diam, diam - 2, diam - 1, length - pushLength, 1.5, threadFace, startFace); Tag[] edgeArray; session.Modl.AskBodyEdges(model, out edgeArray); Tag edge; session.Modl.AskListItem(edgeArray, 8, out edge); drawTool.MakeChamfer(new Tag[] { edge }, outChamferAngle, outChamfer); drawTool.MakeSlice(new Point(0, diam / 2, length - pushLength), (diam - pushDiam) / 2, chamferAngle * Math.PI / 180, DrawTool.FunctionType.Ctg, -1, new string[] { "0", "360" }, origin); Tag[] pushPart = DrawPushPart(drawTool, new Point(0, 0, length - pushLength)); drawTool.Revolve(pushPart, new string[] { "0", "360" }, origin, new double[] { 0.0, 0.0, 1.0 }, FeatureSigns.Positive);; session.Modl.AskFeatBody(outputTag, out model); session.Modl.AskBodyEdges(model, out edgeArray); session.Modl.AskListItem(edgeArray, 28, out edge); drawTool.MakeRounding(new Tag[] { edge }, roundingRadius); drawTool.SaveModel(); }
public void Execute() { if (master && !master.IsAlive) { return; } if (targetRound) { DrawTool.DrawCircle(transform, transform.position, targetRound.fRange, Color.red); } if (targetCone) { DrawTool.DrawSector(transform, transform.position, targetCone.fAngle, targetCone.fRange / 2, Color.red); } }
void Update() { if ((go != null) && (time != 0)) { animator.Play(animationName, 0, time); } switch (drawType) { case DrawType.DrawSector: DrawTool.DrawSector(go.transform, go.transform.position, angle, radius); break; case DrawType.DrawCircle: DrawTool.DrawCircle(go.transform, go.transform.position, radius); break; case DrawType.DrawRectangle: DrawTool.DrawRectangle(go.transform, go.transform.position, length, width); break; case DrawType.DrawRectangle2D: DrawTool.DrawRectangle2D(go.transform, distance, length, width); break; case DrawType.DrawSectorSolid: DrawTool.DrawSectorSolid(go.transform, go.transform.position, angle, radius); break; case DrawType.DrawCircleSolid: DrawTool.DrawCircleSolid(go.transform, go.transform.position, radius); break; case DrawType.DrawRectangleSolid: DrawTool.DrawRectangleSolid(go.transform, go.transform.position, length, width); break; case DrawType.DrawRectangleSolid2D: DrawTool.DrawRectangleSolid2D(go.transform, distance, length, width); break; default: break; } }
// Update is called once per frame void Update() { //進入CD CDing(); //獲取範圍內敵人 hitColliders = Physics.OverlapSphere(transform.position, _distance, 1 << LayerMask.NameToLayer("Enemy")); if (CanUseSkill && Input.GetKey(KeyCode.Alpha3)) { DrawTool.DrawCircle(Rectangle_p, Rectangle_p.localPosition, _distance); } //攻擊範圍標示 if (Input.GetKeyUp(KeyCode.Alpha3)) { UseSkill(); } if (CanUseSkill && isUse && isAnimation) { CostMP(); _particle.Play(true); targetColliders = hitColliders; HitAnimatiom(); settle(); StartCD(); } if (isAnimation) { DrawTool.EndDraw(Rectangle_p, false); isUse = false; isAnimation = false; } }
public override void OnInspectorGUI() { DebugDistanceAngle d = target as DebugDistanceAngle; EditorGUILayout.LabelField("请把角色放在Resources文件夹中,点击Play之后将通过Resources进行加载"); canGetDragEvent = EditorGUILayout.Toggle("通过拖拽获取角色路径", canGetDragEvent); EditorGUILayout.LabelField("角色路径"); if (canGetDragEvent) { if (Event.current.type == EventType.DragExited) { if (DragAndDrop.paths != null && DragAndDrop.paths.Length > 0) { string s = DragAndDrop.paths[0]; s = s.Substring(s.IndexOf("Resources/")); s = s.Remove(0, "Resources/".Length); s = s.Substring(0, s.IndexOf('.')); d.modelName = s; } } } d.modelName = EditorGUILayout.TextArea(d.modelName); // d.animationName = EditorGUILayout.TextField("动画名字", d.animationName); EditorGUILayout.LabelField("播放进度"); d.time = EditorGUILayout.Slider(d.time, 0, 1); d.drawType = (DrawType)EditorGUILayout.EnumPopup("绘制类型", d.drawType); Debug.Log(d.drawType); switch (d.drawType) { case DrawType.DrawSector: EditorGUILayout.LabelField("绘制空心扇形"); EditorGUILayout.LabelField("角度"); d.angle = EditorGUILayout.Slider(d.angle, 0, 180); EditorGUILayout.LabelField("半径"); d.radius = EditorGUILayout.Slider(d.radius, 0, 10); break; case DrawType.DrawCircle: EditorGUILayout.LabelField("绘制空心圆"); EditorGUILayout.LabelField("半径"); d.radius = EditorGUILayout.Slider(d.radius, 0, 10); break; case DrawType.DrawRectangle: EditorGUILayout.LabelField("绘制空心长方形"); EditorGUILayout.LabelField("长度"); d.length = EditorGUILayout.Slider(d.length, 0, 10); EditorGUILayout.LabelField("宽度"); d.width = EditorGUILayout.Slider(d.width, 0, 10); break; case DrawType.DrawRectangle2D: EditorGUILayout.LabelField("绘制空心长方形2D"); EditorGUILayout.LabelField("距离"); d.distance = EditorGUILayout.Slider(d.distance, 0, 10); EditorGUILayout.LabelField("长度"); d.length = EditorGUILayout.Slider(d.length, 0, 10); EditorGUILayout.LabelField("宽度"); d.width = EditorGUILayout.Slider(d.width, 0, 10); break; case DrawType.DrawSectorSolid: EditorGUILayout.LabelField("绘制实心扇形"); EditorGUILayout.LabelField("角度"); d.angle = EditorGUILayout.Slider(d.angle, 0, 180); EditorGUILayout.LabelField("半径"); d.radius = EditorGUILayout.Slider(d.radius, 0, 10); break; case DrawType.DrawCircleSolid: EditorGUILayout.LabelField("绘制实心圆"); EditorGUILayout.LabelField("半径"); d.radius = EditorGUILayout.Slider(d.radius, 0, 10); break; case DrawType.DrawRectangleSolid: EditorGUILayout.LabelField("绘制实心长方形"); EditorGUILayout.LabelField("长度"); d.length = EditorGUILayout.Slider(d.length, 0, 10); EditorGUILayout.LabelField("宽度"); d.width = EditorGUILayout.Slider(d.width, 0, 10); break; case DrawType.DrawRectangleSolid2D: EditorGUILayout.LabelField("绘制实心长方形2D"); EditorGUILayout.LabelField("距离"); d.distance = EditorGUILayout.Slider(d.distance, 0, 10); EditorGUILayout.LabelField("长度"); d.length = EditorGUILayout.Slider(d.length, 0, 10); EditorGUILayout.LabelField("宽度"); d.width = EditorGUILayout.Slider(d.width, 0, 10); break; default: break; } if (tempGo != null) { DestroyImmediate(tempGo); } GameObject go = d.gameObject; tempGo = null; switch (d.drawType) { case DrawType.DrawSector: DrawTool.DrawSector(go.transform, go.transform.position, d.angle, d.radius); break; case DrawType.DrawCircle: DrawTool.DrawCircle(go.transform, go.transform.position, d.radius); break; case DrawType.DrawRectangle: DrawTool.DrawRectangle(go.transform, go.transform.position, d.length, d.width); break; case DrawType.DrawRectangle2D: DrawTool.DrawRectangle2D(go.transform, d.distance, d.length, d.width); break; case DrawType.DrawSectorSolid: tempGo = DrawTool.DrawSectorSolid(go.transform, go.transform.position, d.angle, d.radius); break; case DrawType.DrawCircleSolid: tempGo = DrawTool.DrawCircleSolid(go.transform, go.transform.position, d.radius); break; case DrawType.DrawRectangleSolid: tempGo = DrawTool.DrawRectangleSolid(go.transform, go.transform.position, d.length, d.width); break; case DrawType.DrawRectangleSolid2D: // DrawTool.DrawRectangleSolid2D(go.transform, d.distance, d.length, d.width); break; default: break; } }