Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一-平移游戏对象三维立方体边_C#_Unity3d_3d_Cube - Fatal编程技术网

C# 统一-平移游戏对象三维立方体边

C# 统一-平移游戏对象三维立方体边,c#,unity3d,3d,cube,C#,Unity3d,3d,Cube,我使用一个C#脚本用几个立方体填充我的场景,然后选择一定数量的立方体并变换它们。 我想做的转换是按照 如何移动基本Unity 3d对象立方体的边(在C#脚本中)?您可以通过编辑网格顶点来完成此操作。例如,将此脚本附加到立方体并调整摄影机,以便在按下空格键时可以看到物体四处移动。你应该看到盒子的移动,知道如何得到你想要的东西 public class CubeScript : MonoBehaviour { int vert_num = 0; Mesh mesh; Vector3[] verts

我使用一个C#脚本用几个立方体填充我的场景,然后选择一定数量的立方体并变换它们。 我想做的转换是按照


如何移动基本Unity 3d对象立方体的边(在C#脚本中)?

您可以通过编辑网格顶点来完成此操作。例如,将此脚本附加到立方体并调整摄影机,以便在按下空格键时可以看到物体四处移动。你应该看到盒子的移动,知道如何得到你想要的东西

public class CubeScript : MonoBehaviour {

int vert_num = 0;
Mesh mesh;
Vector3[] verts;

// Use this for initialization
void Start () {
    mesh = GetComponent<MeshFilter>().mesh;
    verts = mesh.vertices;
}

// Update is called once per frame
void Update ()
{
    if (Input.GetKeyDown (KeyCode.Space)) {

        // Loop back around after the last vert
        if (vert_num >= verts.Length) {
            vert_num = 0;
        }

        // Move the next vert and echo its number
        Debug.Log("Moving vert#: " + vert_num);
        verts[vert_num] += Vector3.up * 0.1f;
        mesh.vertices = verts;

        vert_num += 1;
    }
}
公共类CubeScript:MonoBehavior{
int vert_num=0;
网目;
向量3[]个顶点;
//用于初始化
无效开始(){
mesh=GetComponent().mesh;
顶点=网格顶点;
}
//每帧调用一次更新
无效更新()
{
if(Input.GetKeyDown(KeyCode.Space)){
//在最后一个顶点后循环
如果(垂直数>=垂直长度){
垂直数值=0;
}
//移动下一个顶点并回显其编号
Log(“移动垂直:”+vert#u num);
顶点[vert_num]+=Vector3.up*0.1f;
网格顶点=顶点;
垂直数+=1;
}
}
}


有关更多信息,请参阅:

据我所知,这不可能。因此,我必须创建自己的3d多维数据集,而不是基本的多维数据集,并为自己实现这种转换?您希望在运行时进行转换吗?好的,这很有意义。所以我画了一堆立方体,然后选择一个我想要倾斜的立方体,得到它的网格和顶点。现在,我降低了2个顶点,但我是否也需要修改边或面以再次生成正确的形状?您应该只需要降低6个顶点。顶部2表示右侧面板,右侧2表示顶部面板,右上表示前面板,右上表示后面板。根据着色器和使用对象的方式,完成后可能需要在网格上调用RecreactEnormals()。还值得注意的是,仅使用两个固定网格和一个动画可能会降低CPU成本。取决于计划在场景中拥有多少对象以及计划使用多少类型的变换。