/// <summary> /// 追加 /// </summary> private void Add() { Vector2 mPoint; if (!polyLine.GetMousePoint(out mPoint)) { return; } //例外検出 //if (!polyLine.checker.AddCheck(renderer.GetVertices(), mPoint)) return; //スナップ Vector2 snapPoint; if (polyLine.snapper.Snap(mPoint, out snapPoint)) { mPoint = snapPoint; //クリック時のスナップのコールバックを呼ぶ snapper.CallPrevSnap(); //その結果終了フラグが立った場合 if (ended) { //追加 renderer.Add(mPoint); //終了 End(false); return; } } //追加 renderer.Add(mPoint); SetSnap(); }
/// <summary> /// 入力確認 /// </summary> private void InputCheck() { switch (mode) { //調整 case Mode.Adjust: if (adjusting) { Vector2 mDelta = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y")); if (mDelta.magnitude > EPSILON) { SetNoticeLine(); } if (Input.GetMouseButtonUp(0)) { Vector2 point; if (polyLine.GetMousePoint(out point)) { Vector2 snapPoint; if (snapper.Snap(point, out snapPoint)) { point = snapPoint; } EndVertexMove(point); } } } else { if (Input.GetMouseButtonDown(removeModeButton)) { StartRemoveMode(); } } break; //削除 case Mode.Remove: if (Input.GetMouseButtonDown(removeModeButton)) { StartAdjustMode(); } break; } //終了 if (Input.GetKeyDown(escKey)) { owner.DisactivateState(); } }