ドラッグしてみようとしています。私は骨を肉から引き抜くことになっているプロジェクトを持っています。ドラッグは機能していますが、私が骨をつかむと、私はそれをあらゆる方向に動かすことができます。私が達成したいのは、私はそれを一方向にしかドラッグできないということです。下の画像では、私は赤い線を意味します。私は多くのことを試みましたが、これまでのところ何もできませんでしたどんな助けもありがとうございます。オブジェクトを1行でドラッグする
私はドラッグのために、これらの機能を使用していました。
void OnMouseDown()
{
offset = this.transform.position - Camera.main.ScreenToWorldPoint(new Vector2(Input.mousePosition.x, Input.mousePosition.y));
}
void OnMouseDrag()
{
Vector3 curScreenPoint = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
transform.position = curPosition;
}
は、これが唯一の赤の矢印の方向に移動することになっていると仮定することは安全ですか?そうであれば、赤い矢印がオブジェクトに関連している度合いを知っていますか?赤い矢印は角度を変えますか?そうでない場合、それは常にそれが45度の角度であると仮定できるか? –
はい、赤い矢印の方向にのみです。まあ、それぞれのオブジェクトの回転が異なるので、常にそうであるとは限りません45. – Richarrd82
ああ、矢印を変えることができる矢印はこれをもう少し複雑にします。ここでは、y = mx + bの式を使って、各mousedragがユニットを移動するために必要なXとYの単位数を決定します。私は最初に45度の角度で画像を移動させてから、別の角度を可能にするためにその上に構築します。 –