0

我很确定这是我正在查看的菜鸟错误,但我需要一些指导。这是我的代码:

void OnMouseDown()
{
    if(clickedContainers.Contains(transform.parent.name)) //if the containerblock is in "up" state
    {
        //transform.parent.transform.Translate(Vector3.down * 10 * Time.deltaTime);
        newPos = transform.parent.position;
        newPos.y -= 200;
        clickedContainers.Remove(transform.parent.name);
        Application.ExternalCall("Test", "Hello from Unity!" + transform.parent.name);
    }
    else //if the container block is in "down" state = default
    {
        newPos = transform.parent.position;
        newPos.y += 200;
        //transform.parent.position = Vector3.Lerp(transform.position, newPos, Time.deltaTime);
        clickedContainers.Add(transform.parent.name);
    }

    transform.parent.position = Vector3.Lerp(transform.position, newPos, Time.deltaTime);


}

很少有问题,在 if 语句中使用注释代码时,一切正常;我单击一个对象,它会向上移动包含所有子对象的父对象。现在我想平滑这个运动,而不是像它的传送一样。所以我试图用 Lerp 做到这一点,但我在这里遗漏了一些东西。现在看起来父母正在“传送”(所以这里没有 lerp)并且它正在向各个方向传送,所以不仅仅是在 Y 方向。

抱歉,如果这是一个非常愚蠢的问题,但我需要一些帮助。干杯

4

0 回答 0