【问题标题】:Mouse trail is teleporting when i click当我点击时,鼠标轨迹正在传送
【发布时间】:2018-06-17 03:37:03
【问题描述】:

我正在尝试制作鼠标轨迹。因此,当您按住鼠标按钮时,它会开始追踪,您可以四处移动,然后当您释放时,它就会消失。我为此使用了跟踪渲染器。

我试图复制在水果忍者之类的东西中看到的刀片。所以我有一个名为刀片的空游戏对象,它有一个运动刚体 2d 和我的刀片脚本。

然后我有一条线索,它是我拖入刀片脚本的预制件。这是刀片脚本:

bool isCutting = false;
Rigidbody2D rb;
Camera cam;

public GameObject trail;
GameObject currentTrail;

private void Start()
{
    rb = GetComponent<Rigidbody2D>();
    cam = Camera.main;
}

void Update () 
{
    if (Input.GetMouseButtonDown(0))
    {
        isCutting = true;
        currentTrail = Instantiate(trail, transform);
    } else if (Input.GetMouseButtonUp(0))
    {
        isCutting = false;
        currentTrail.transform.SetParent(null);
    }

    if (isCutting)
    {
        rb.position = cam.ScreenToWorldPoint(Input.mousePosition);
        Destroy(currentTrail, 2f);
    }
}

唯一的问题是,当我按住鼠标时,刀片会通过轨迹渲染器疯狂地传送到我的鼠标位置。

所以我认为默认刀片位置在相机的中间,如果我在顶部拖动并按住,你可以看到刀片的开头是从中间到顶部的直线轨迹,我想要线索从我点击的地方开始。

我希望这是有道理的。谢谢

【问题讨论】:

标签: c# unity3d


【解决方案1】:

尝试将Update() 方法的最后一部分更改为:

if (isCutting)
{
    currentTrail.transform.position = rb.position = cam.ScreenToWorldPoint(Input.mousePosition);
    Destroy(currentTrail, 2f);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多