如何让 sprite 在 unity2d 中直接掉落(而不是从它的列中移动)?

how to make sprite fall straight down in unity2d (and not move from its column)?

如何让 sprite 垂直下落,并通过拖动或物理抵抗任何侧向运动?

我的代码在运行时实例化了一个带有附加脚本的预制件。

一段时间后脚本运行以下函数:

void addSliderJoint() {
    myVerticalSlider = gameObject.AddComponent<SliderJoint2D> () as SliderJoint2D;
    myVerticalSlider.angle = 90;
}

运行此函数后,我希望精灵只能垂直移动,但它们似乎很乐意不受限制地移动。我可以在运行时 "see" 检查器中的 SliderJoint2D,如果我在 GUI 中更改它的设置,精灵会突然响应它。

可在 https://github.com/thunderrabbit/finna-be-octo-wallhack

获取示例存储库

我刚刚将其添加到您的 OnMouseDrag() 方法中

// Set the Position
    Vector2 newPos = new Vector2(startPos.x, startPos.y + dir.y);
    transform.position = newPos;

作为一个建议,如果你想让一个对象只根据一个轴移动,你可以添加一个 Rigidbody(不是 Rigidbody2D),并在对象以冻结除要在其上平移的轴之外的位置。