我正在开发一个项目,创建你自己的复杂3D模型(像probuilder,但像一个应用程序),但是当我尝试通过说
90°
旋转我生成的网格时,它实际上旋转了180°
。
我似乎不明白为什么?
0°
90°
我想让它旋转90度,但实际上它旋转了180度
当我用任何其他预定义的网格(立方体或圆柱体)替换网格时,它工作正常。所以我认为问题出在我创建网格时。 编辑:-我已经指出了这段代码中的问题。这段代码根据游戏对象顶点修改网格顶点,以便我在移动顶点时可以使面变形
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DeformFace : MonoBehaviour
{
public Face face;
public List<Vertex> sharedVertices=new List<Vertex>();
Mesh mesh;
public List<Vector3> meshVertices=new List<Vector3>();
private void Start()
{
sharedVertices=face.sharedVertices;
for (int i = 0; i < sharedVertices.Count; i++)
{
meshVertices.Add(sharedVertices[i].transform.position);
}
mesh =GetComponent<MeshFilter>().mesh;
}
private void Update()
{
DeformingFace();
}
public void DeformingFace()
{
for (int i = 0; i < sharedVertices.Count; i++)
{
meshVertices[i] = sharedVertices[i].transform.position-transform.position;
}
mesh.vertices = meshVertices.ToArray();
}
}
所有类型的网格都可以这样做吗? (三角形、正方形、立方体……)
我唯一能想到的是你多次使相同的顶点变形。