旋转项目:90度旋转

时间:2015-12-02 22:31:19

标签: c# unity3d

我发现这个脚本让你点击一个项目然后拖动它旋转它,但它会根据你手指的位置旋转,我该怎样做才能像在俄罗斯方块中那样将物体旋转90度?

public class RotateDrag : MonoBehaviour {
    void OnMouseDrag(){
        Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);
        pos = Input.mousePosition - pos;
        float ang = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.AngleAxis(ang, Vector3.forward);
    }
}

实施例

在Photoshop中,如果要旋转图层中的项目,可以按住 Shift ,并在旋转时捕捉到45°角。

但我想要90°角度拍摄。

1 个答案:

答案 0 :(得分:0)

你需要做的只是从选定的点开始,作为角度上的符号并将其应用到90度旋转:

    float ang = 90.0 * Math.Sign(Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg);

    transform.rotation = Quaternion.AngleAxis(ang, Vector3.forward);