如何在统一3d中移动飞机的各个部分

时间:2013-08-31 16:59:58

标签: unity3d 3dsmax

我有一个飞机模型,我能够飞行它。我想移动飞机的各个部分,如方向舵,螺旋桨,起落架等。并改变Unity 3d中飞机的方向。

1 个答案:

答案 0 :(得分:0)

如果你的模型有一个电枢,你可以在整体或你的建模程序中为电枢的父级片制作动画,然后通过脚本你可以触发这些动画。

编辑:我发现通过脚本控制网格的东西,你可以改变它以满足你的需要,我仍然说回到建模程序并放入一个电枢并重新导出它会更容易已经有了一个armiture和动画,这就是我可以帮助你的全部

using UnityEngine;
using System.Collections;

[ExecuteInEditMode]

public class VertHandler : MonoBehaviour 
{
    Mesh mesh;
    Vector3[] verts;
    Vector3 vertPos;
    GameObject[] handles;

    void OnEnable()
    {
       mesh = GetComponent<MeshFilter>().mesh;
       verts = mesh.vertices;
       foreach(Vector3 vert in verts)
       {
         vertPos = transform.TransformPoint(vert);
         GameObject handle = new GameObject("handle");
         handle.transform.position = vertPos;
         handle.transform.parent = transform;
         handle.tag = "handle";
         //handle.AddComponent<Gizmo_Sphere>();
         print(vertPos);
       }
    }

    void OnDisable()
    {
       GameObject[] handles = GameObject.FindGameObjectsWithTag("handle");
       foreach(GameObject handle in handles)
       {
         DestroyImmediate(handle);    
       }
    }

    void Update()
    {
       handles = GameObject.FindGameObjectsWithTag ("handle");
       for(int i = 0; i < verts.Length; i++)
       {
         verts[i] = handles[i].transform.localPosition;   
       }
       mesh.vertices = verts;
       mesh.RecalculateBounds();
       mesh.RecalculateNormals();
    }
}