Unity Lifecyle об обновлении и OnPointerClick, кто первый вызов в кадре? - PullRequest
0 голосов
/ 09 июля 2019

Жизненный цикл Unity

Я проверил жизненный цикл Unity, и я запутался в Update () и OnPointerClick (). Кто вызывает первым в кадре ??

public class Test : MonoBehaviour , IPointerClickHandler
{
    // who first ??
    private void Update()
    {

    }

    // who first ??
    public void OnPointerClick(PointerEventData eventData)
    {
        throw new NotImplementedException();
    }
}

Ответы [ 3 ]

1 голос
/ 09 июля 2019

IPointerClick вызывается в текущем кадре, как только вы нажимаете. Для лучшего теста используйте код ниже:

private void Update()
{
    Debug.Log("Update frame count: " + Time.frameCount);
}

private void OnPointerClick(PointerEventData eventData)
{
    Debug.Log("OnPointerClick frame count: " + Time.frameCount);
}
1 голос
/ 09 июля 2019

Вы можете проверить это самостоятельно с помощью чего-то вроде:

private int nUpdates = 0;

private void Update()
{
    Debug.Log("Update() number: " + nUpdates);
    nUpdates += 1;
}

private void OnPointerClick(PointerEventData eventData)
{
    Debug.Log("Update() number on click: " + nUpdates);
}

Если при нажатии сначала отображается сообщение «Обновить по клику» для определенного номера, то сначала запускается это событие.

Дайте нам знать, что случилось: -).

Спойлер:

0 голосов
/ 09 июля 2019

Хотя ответы @ AndreasHassing и @MicroEyes сообщат вам текущее поведение, я настоятельно рекомендую вам избегать зависимости от побочных эффектов определить поведение (по возможности).

В зависимости от результатов стороннего API, а не от документации, в дальнейшем может возникнуть путаница, если они решат внутренне изменить это поведение.

В этом случае, однако, правильно сказать, что Input Events запускается до вызова ловушки Update, как вы можете видеть на следующем изображении из Unity docs :

Unity Input Events vs Update Hook Execution Order

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