Трейлер рендерера оставляет след при телепортации - PullRequest
0 голосов
/ 23 июня 2018

У меня есть игра, похожая на фруктового ниндзя, где лезвие следует за твоим пальцем, а за ним следует детский след.

Это нормально работает в редакторе, но когда я собрал apk и сыграл на своем телефоне, он телепортируется с последней точки. Поэтому, если я перейду в верхний левый угол, подниму палец и положу его в нижнем правом углу, и вы увидите тонкую быструю диагональную линию.

Вот мой код:

private void Update()
{
    if (Event.current == null || (Event.current != null && EventSystem.current.currentSelectedGameObject == null))
    {
        if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
        {
            circleCollider.enabled = false;
            currentTrail = Instantiate(trail, transform);
            isCutting = true;
        }
        else if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Ended)
        {
            circleCollider.enabled = false;
            currentTrail.transform.SetParent(null);
            Destroy(currentTrail, 2f);
            isCutting = false;
        }
    }

if (isCutting)
    {
        Vector2 newPos = currentTrail.transform.position = rb.position = cam.ScreenToWorldPoint(Input.mousePosition);

        float velocity = (newPos - previousPos).magnitude * Time.deltaTime;
        if (velocity > minCuttingVelocity)
        {
            circleCollider.enabled = true;
            canCut = true;
        } else {
            circleCollider.enabled = false;
            canCut = false;
        }

        previousPos = newPos;
    }
}

Как я уже сказал, это прекрасно работает в редакторе, просто на телефоне. Есть ли какой-нибудь хакерский способ обойти это?

1 Ответ

0 голосов
/ 25 июня 2018

Когда вы думаете об этом, в единстве любое движение - это просто маленький телепорт в каждом кадре. По этой логике рендерер следов должен основываться на таком движении. Как средство рендеринга следов может отличить большой телепорт от маленького? Вероятно, не может.

Так что, если вы собираетесь явно телепортировать объект, отключите его рендеринг следа, телепортируйте его, а затем снова включите. должен сделать свое дело.

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