У меня есть префаб и на него прикреплен данный скрипт (отвечает за перемещение его мышкой)
spoilerclass Move : MonoBehaviour{
public GameObject gift;
private bool mooving;
private float startPosX;
private float startPosY;
void Update(){
if(mooving){
Vector3 mousePos;
mousePos = Input.mousePosition;
mousePos = Camera.main.ScreenToWorldPoint(mousePos);
this.gameObject.transform.localPosition = new Vector3(mousePos.x - startPosX, mousePos.y - startPosY, this.gameObject.transform.localPosition.z);
}
if (Input.GetMouseButtonDown(0)) OnMouseDown();
if (Input.GetMouseButtonUp(0)) OnMouseUp();
}
private void OnMouseDown(){
Vector3 mousePos;
mousePos = Input.mousePosition;
mousePos = Camera.main.ScreenToWorldPoint(mousePos);
startPosX = mousePos.x - this.transform.localPosition.x;
startPosY = mousePos.y - this.transform.localPosition.y;
mooving = true;
}
private void OnMouseUp(){
mooving = false;
}
}
есть скрипт который их выводит в разные координаты
...........
private Dictionary<(int,int),GameObject> Cells = new Dictionary<(int,int),GameObject>();
...........
Cells[(x,y)] = Instantiate(Gift, new Vector2(x, y), Quaternion.identity);
...........
Проблема заключается в том что при перемещении одного из объектов они перемещаются все разом.
Как их перемещать по одному, то есть перемещать тот которым взял мышкой?