前提
https://sunagitsune.com/unitydragobjecttobox/
こちらのスクリプトを参考にして、ゲーム内でドラッグアンドドロップを導入しています。
枠の中に納まった後に、もう一度動かしなおすことができなくなることがあります。
**
実現したいこと
常に動かしたいオブジェクトの当たり判定が枠の当たり判定より上にくるようにしたい。
該当のソースコード
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Draggg : MonoBehaviour 6{ 7 8 public static bool boxFlag; 9 public int count; 10 private float constantZ; 11 public bool beforestart; 12 public bool colsize; 13 public BoxCollider2D boxcol; 14 public bool Collision; 15 public bool notCollision; 16 private Vector2 prePosition; 17 void Start() 18 { 19 beforestart = true; 20 constantZ = transform.position.z; 21 boxcol = GetComponent<BoxCollider2D>(); 22 prePosition = transform.position; 23 Collision = false; 24 notCollision = true; 25 count = 0; 26 } 27 void Update() 28 { 29 if (colsize) 30 { 31 boxcol.size = new Vector2(0.030f, 1.0f); 32 } 33 } 34 // Start is called before the first frame update 35 void OnMouseDrag() 36 37 { 38 39 40 if (beforestart) 41 { 42 boxFlag = true; 43 Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); 44 mousePos.z = constantZ; 45 transform.position = mousePos; 46 transform.SetSiblingIndex(99); 47 } 48 } 49 50 // Update is called once per frame 51 void OnMouseUp() 52 { 53 if (beforestart) 54 { 55 if (Collision) 56 { 57 boxFlag = false; 58 this.transform.SetSiblingIndex(0); 59 } 60 if (notCollision) 61 { 62 transform.position = prePosition; 63 } 64 } 65 } 66 67 68}
試したこと
収める枠のBoxCollider2Dの範囲を小さくしてみると、
範囲の中をドラッグしてもオブジェクトを動かせない、枠の範囲外かつオブジェクトのBoxCollider2Dの範囲をドラッグすると動かすことができたのでBoxCollider2Dの当たり判定が、動かしたいオブジェクトより枠の当たり判定が上に来てしまっていることが原因のようです。
補足情報(FW/ツールのバージョンなど)
unity 2021.3.5f1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/30 09:03
2022/07/31 12:14 編集