围绕枢轴点旋转对象
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 轴。如果这不是交换的正确选择,请尝试不同的组合。
我正在网格中的所有顶点上创建 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 轴。如果这不是交换的正确选择,请尝试不同的组合。