2017-04-20 4 views
0

나는 간단하다고 느낀다. 그러나 나는 온라인 솔루션을 찾고 있으며 적절한 결과를 찾을 수 없다.
transform.Rotate(0, Time.deltaTime, 0);부모가 돌아 가면 자식 위치가 바뀌지 않는다.

내가 부모와 함께 회전이 영역에 부착 된 자식 개체가 있습니다

나는 간단한 스크립트를 사용하여 Y 축 구를 가지고 천천히 거기에 회전합니다. 여태까지는 그런대로 잘됐다.

나는 아이의 중심에 피벗을 배치하고이 부모 사용하여 회전으로 나는 자식 개체의 위치를 ​​얻기 위해 노력했다 :

void Update() 
{ 
    Debug.Log(this.transform.position); 
} 

업데이트가의 위치를 ​​제공하지만를 아이가 부모로부터 붙어 있지 않은 것처럼

업데이트 할 때 구형 부모에 연결될 때 자식 위치를 얻는 방향으로 나를 지적 할 수 있습니까?

시간과 인내심에 감사드립니다.

답변

2

정말 이해할 수 없습니까? "구형 부모에게 연결될 때 그 위치가 바뀔 때" 의미하지만 시도해 보겠습니다.
Vector3 relativePosition = Child2.transform.position - Sphere.transform.position;

: 당신이 구체자식 2의 위치를 ​​얻고 싶은 경우에, 당신은 같은 것을 할 수

-- Sphere (rotating along its Y axis) 
    -- Child (that rotates with "Sphere" parent) 
    -- Pivot (in the center of the "Child" object and rotating along its Y axis) 
     -- Child2 (that rotates with "Pivot" parent) 

:

나는 당신의 계층 구조는 다음과 같습니다 가정

Transform.localPosition을 사용하여 부모와 관련된 개체의 위치를 ​​가져올 수도 있습니다. 에 대한 피벗 - 나는 신인 실수의 비트를 만들고 있었다 -이 문제 해결에 매우 유용했다,이 도움이
Vector3 relativePosition = Child.transform.localPosition + Pivot.transform.localPosition + Child2.transform.localPosition

희망,

+1

안녕하세요 Kardux :이 경우는이 방법을 사용할 수 있습니다 아이가 모델의 중심에 있었다. 이 피벗을 재설정하고 다시 가져온 후에는 이전 코드 조각과 함께 작동했습니다. 근본적으로 저는 자식의 위치를 ​​업데이트하여 코드를 라인 렌더러와 함께 사용하기를 원했습니다. 시간과 인내심에 감사드립니다. –

+0

그래, 피코 정렬 개체로 놀 때, 잘못 배치 된 피벗은 꽤 빨리 마음을 엉망으로 만들 수 있습니다. – Kardux