@Zimaell

Почему двигаются все объекты сразу?

У меня есть префаб и на него прикреплен данный скрипт (отвечает за перемещение его мышкой)
spoiler
class 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);
...........

Проблема заключается в том что при перемещении одного из объектов они перемещаются все разом.
Как их перемещать по одному, то есть перемещать тот которым взял мышкой?
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 1
tentrun
@tentrun
Clown c# inside
Добавь на каждый объект триггер и проверяй уже тогда, так у тебя будут получаться все объекты, которые являются gift
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы