1

我有一个飞机模型,我可以驾驶它。我想移动飞机的各个部件,如方向舵、螺旋桨、起落架等。并在 Unity 3d 中改变飞机的方向。

4

1 回答 1

0

如果您的模型有一个骨架,您可以统一或在您的建模程序中为骨架父片段制作动画,然后通过脚本您可以触发这些动画。

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

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();
    }
}
于 2013-08-31T19:51:02.780 回答