如何只拖动一个对象,而不是Unity中的所有对象?

时间:2018-01-12 15:28:05

标签: android unity3d drag-and-drop drag

我在Android上制作2D益智游戏。当我只使用一个对象时,我的代码工作正常。但后来我添加了更多的物体,现在当我触摸其中一个拼图时,我将所有拼图都拖到屏幕上。顺便说一句,这个脚本附加到所有部分。 这是我的代码:

public Transform right_particle;
 public Transform wrong_particle;
 public string pieceStatus = "";


 void Update()
 {
     if (pieceStatus != "locked" && Input.GetMouseButton (0)) {

                 float distance_to_screen = Camera.main.WorldToScreenPoint (gameObject.transform.position).z;
                 Vector3 pos_move = Camera.main.ScreenToWorldPoint (new Vector3 (Input.mousePosition.x, Input.mousePosition.y, distance_to_screen));
                 gameObject.transform.position = new Vector3 (pos_move.x, pos_move.y, pos_move.z);

 }}

 void OnTriggerStay2D(Collider2D other)
 {
     if ((other.gameObject.name == gameObject.name) && Input.GetMouseButtonUp(0) ){

         other.GetComponent<BoxCollider2D> ().enabled = false;
         GetComponent<BoxCollider2D> ().enabled = false;
         transform.position = other.gameObject.transform.position;
         pieceStatus = "locked";
         Instantiate (right_particle, other.gameObject.transform.position, right_particle.rotation);

     }

     else if ((other.gameObject.name != gameObject.name) && Input.GetMouseButtonUp (0)) {

         Instantiate (wrong_particle, other.gameObject.transform.position, right_particle.rotation);
     }
 }

我也尝试过使用光线投射,但没有任何一个动作。我还有一个问题是OnTriggerStay2D,&#34;否则如果&#34;部分。 OnTriggerStay2D应根据拼图块实例化其中一个粒子是否在正确的位置。但是当它在正确的位置时,它会实例化它们。我可以使用任何帮助,尤其是第一个问题。谢谢大家。

0 个答案:

没有答案