gpt4 book ai didi

c# - 传送时轨迹渲染器留下轨迹

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:00 27 4
gpt4 key购买 nike

我有一个像水果忍者这样的游戏, Blade 会跟随你的手指,然后会有一个子轨迹渲染器。

这在编辑器中运行良好,但当我构建 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;
}
}

正如我所说,这在编辑器中运行良好,只是在手机上。有什么 hacky 方法可以解决这个问题吗?

最佳答案

当你想到它时,在 unity 中,任何移动都只是每一帧的一个小传送。按照这个逻辑,轨迹渲染器必须基于这样的运动。轨迹渲染器如何区分大传送和小传送?它可能不能。

因此,如果您要显式传送一个对象,请禁用其轨迹渲染、传送它,然后重新启用它。应该做的伎俩。

关于c# - 传送时轨迹渲染器留下轨迹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51004835/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com