【问题标题】:Rotate Object around Pivot Point围绕枢轴点旋转对象
【发布时间】:2015-07-14 09:12:54
【问题描述】:

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

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

答: 以正确的方式导入 Mesh。

乙: 将 Gizmo 旋转 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();
    }
}

【问题讨论】:

    标签: c# unity3d blender mesh


    【解决方案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 轴。如果这不适合交换,请尝试不同的组合。

    【讨论】:

    • 太棒了!虽然我不得不使用 -p.z 而不是正数,但它确实有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    相关资源
    最近更新 更多