항공기 모델을 가지고 있으며 비행 할 수 있습니다. 나는 방향타, 프로펠러, 랜딩 기어 등과 같은 항공기의 개별 부품을 움직이기를 원한다. Unity 3d에서 항공기의 방향을 변경하십시오.항공기의 개별 부분을 조율로 이동하는 방법 3d
답변
모델에 뼈대가있는 경우 뼈대가있는 피어싱 된 조각에 대해 애니메이션이나 모델링 프로그램에서 애니메이션을 만들 수 있으며 스크립트를 통해 해당 애니메이션을 트리거 할 수 있습니다.
EDIT : 내가 스크립트를 통해 메쉬를 제어하기 위해 찾은 점은 필요에 맞게 변경할 수 있습니다. 모델링 프로그램으로 돌아가서 다시 뼈대에 넣고 다시 내보내기가 더 쉬울 것이라고 말합니다. 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();
}
}
답장을 보내 주신 Mr. JRowan에게 감사드립니다. 하지만 개별 부분을 스크립트로 작성하고 애니메이션으로 만들지는 않겠습니다. 부품 이동을 통해 방향을 바꾸고 항공기를 회전시키고 싶습니다. 그러한 스크립트를 제공하거나 가이드 할 수 있다면 친절 할 것입니다. 감사합니다 ... –
일부 코드로 업데이트 한 적이 있습니다. 나는 그것을 시도하지 않았고, 모든 모델에 애니메이션을 넣었으며 스크립트로 애니메이션을 만들었습니다. 그 방법은 훨씬 쉬웠습니다. http://answers.unity3d.com/questions/에서 가져 왔습니다. 14567/editing-mesh-vertices-in-unity.html – JRowan
이 질문은 프로그래밍 관련 질문이 아니기 때문에 주제가 아닌 것 같습니다. – Toto