Мой объект перемещается на предыдущую позицию щелчка - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть объект "Stick" (results [0] .gameObject), и если я щелкаю по нему правой кнопкой мыши, то он перемещается в предыдущую позицию щелчка.Почему так происходит?https://www.youtube.com/watch?v=Q9Xyzo0z_rE&feature=youtu.be

Код:

void Update () {
    if (Input.GetKeyUp(KeyCode.Mouse1))
    {
        pointerEventData = new PointerEventData(eventSystem);
        pointerEventData.position = Input.mousePosition;

        List<RaycastResult> results = new List<RaycastResult>();

        raycaster.Raycast(pointerEventData, results);
        if (results.Count != 0)
        {
            if (results[0].gameObject.tag == "ItemIcon")
            {
                RectTransform resultTransformParent;
                resultTransformParent = results[0].gameObject.transform.parent.GetComponent<RectTransform>();
                if (currentMenu != null)
                    Destroy(currentMenu);
                currentMenu = Instantiate(SplitMenu, transform);
                Debug.Log(resultTransformParent.position);
                SplitMenu.GetComponent<RectTransform>().position = new Vector3(resultTransformParent.anchoredPosition.x,381 - Math.Abs(resultTransformParent.anchoredPosition.y),0);


            }
        }
    }
}

1 Ответ

0 голосов
/ 07 февраля 2019

Все просто, вы обновляете позицию SplitMenu вместо currentMenu.

SplitMenu - это готовый объект, а не вновь созданный объект.Поэтому, когда вы изменяете свою позицию, новый объект (currentMenu) не перемещается.

При следующем щелчке создается новое меню с использованием префаба - положение которого было изменено в прошлый раз - поэтому новое менюимеет позицию последнего клика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...