在数据透视点周围旋转对象

时间:2015-05-04 20:27:26

标签: c# unity3d blender mesh

我正在网格中的所有顶点上创建小玩意儿,但是当我这样做时,该对象是直线向上和向下,但是小发明是横向的。

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

A: 正确导入网格。

B: 将小玩意旋转90度,使它们与角色匹配。

Gizmos

以下是我用来绘制小玩意儿的内容:

[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();
    }
}

1 个答案:

答案 0 :(得分:1)

我认为它不是旋转的点,而是轴不对齐。 尝试像这样交换轴:

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轴。如果那不是正确的交换尝试不同的组合。