我很确定这是我正在查看的菜鸟错误,但我需要一些指导。这是我的代码:
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 方向。
抱歉,如果这是一个非常愚蠢的问题,但我需要一些帮助。干杯