うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】指定距離だけ線を書く

github.com

※別ブランチ

以前の線を書く記事よりプロジェクトはそのまま利用して書ける線に制限をつけてみます

書く線の距離は以下のように習得しているので、これに制限をかけるだけでいけます

var magnitude = (_prevPos - pos).magnitude;

新しく変数を定義して、描画する際にチェックを入れるだけ

// 書ける長さ
private float _remainDraw;
  
public void OnDrag(PointerEventData eventData)
{
    // 一定の範囲書いたら終わり
    if (_remainDraw <= 0)
        return;
 
    var pos = eventData.position;
 
    // 書ける距離が2f未満だった場合
    var magnitude = (_prevPos - pos).magnitude;
    if (magnitude >= _remainDraw)
    {
        SetLimitGauge(_remainDraw);
        CreateMesh(_prevPos, pos, _isNew);
        return;
    }
 
    // 一定距離ドラッグしたら描画する
    if (magnitude < 2f)
        return;

    // 書ける距離を減らす 
    _remainDraw -= magnitude;
    CreateMesh(_prevPos, pos, _isNew);
    _prevPos = eventData.position;
    _isNew = false;
}

結果がこれになります

分かりやすいように書ける分だけゲージにして表しています

f:id:hacchi_man:20200902031033g:plain:h300