围绕枢轴点旋转对象

Rotate Object around Pivot Point

我正在网格中的所有顶点上创建 gizmo,但是当我这样做时,对象是直上直下的,但 gizmo 是横向的。

正如你在这张图片中看到的那样,角色是直上直下的,但是 gizmos 旋转了 90 度,所以我怎么能

答: 以正确的方式导入网格。

乙: 将小工具旋转 90 度,使其与角色匹配。

这是我用来绘制小玩意儿的东西:

[RequireComponent(typeof(MeshFilter))]
public class Creator : MonoBehaviour {

    public Vector3[] vertices;

    public Mesh mesh;

    void OnDrawGizmosSelected() {
        mesh = GetComponent<MeshFilter>().sharedMesh;
        if (vertices == null || vertices.Length == 0) {
            vertices = mesh.vertices;
        } else {
            mesh.vertices = vertices;
        }
        Vector3 lp = transform.position;
        foreach (Vector3 v in vertices) {
            Vector3 p = lp - v;

            Gizmos.color = Color.yellow;
            Gizmos.DrawCube(p, new Vector3(0.02f, 0.02f, 0.02f));
        }
        mesh.RecalculateBounds();
    }
}

我觉得不是你的点旋转了,而是轴没有对齐。 尝试像这样交换轴:

foreach (Vector3 v in vertices) {
            Vector3 p = lp - v;

            Gizmos.color = Color.yellow;
            Gizmos.DrawCube(new Vector3(p.x, p.z, p.y), new Vector3(0.02f, 0.02f, 0.02f));
        }

注意:我交换了 y 轴和 z 轴。如果这不是交换的正确选择,请尝试不同的组合。