2016-08-02 3 views
0

두 게임 객체 sphereOnesphereTwo을 빈 게임 객체 both의 자식으로 사용했습니다.gameObject를 회전하는 평면에서 Unity의 다른 gameObject 주위를 회전하는 방법

나는이 sphereTwo 주위 sphereOne를 회전 할 수있는 sphereTwo

void Update() 
    { 
    transform.RotateAround(sphereOne.transform.position, new Vector3(0, 1, 0), 100*Time.deltaTime); 
    } 

에 부착이 C# 코드를했습니다.

부모 게임 객체 both을 회전하면 해당 특정 평면에서만 회전합니다. 그것은 부모 개체의 회전과 동일한 평면 상에 놓 이도록

enter image description here

어떻게 동적으로이 회전 영역의 위치를 ​​변화 업데이트하나요?

+0

올바른 평면과 관련하여 부모의 위치 벡터로 위치 벡터를 설정 하시겠습니까? –

+0

여기 비밀은 물건을 "보유"하고있는 비어있는 게임 객체 (흔히 "마커"라고 부름)입니다. – Fattie

+0

[부모 축을 중심으로 회전하는 어린이와의 어려움] 가능한 복제본 (http://stackoverflow.com/questions/37753519/difficulty-with-rotating-child-around-parent-axes) – Fattie

답변

4

Transform.RotateAround()의 두 번째 매개 변수는 sphereTwo이 약 sphereOne 주위로 회전하는 평면의 방향을 결정하는 축입니다. 바로 지금이 값을 정적 값 new Vector3(0, 1, 0)으로 설정했습니다. 기본적으로 세계의 상향 벡터입니다. 당신은 아마 수 (

void Update() 
{ 
    transform.RotateAround(sphereOne.transform.position, sphereOne.transform.up, 100*Time.deltaTime); 
} 

:의 변환이이 sphereOne의 세계 - 공간 회전에 따라 변경됩니다 -

대신 sphereOne의 방향을 기반으로 축이하려면 대신 Transform.up 벡터를 사용 상황에 따라 both.transform.up을 사용하십시오.)

희망이 있습니다. 궁금한 점이 있으면 알려주세요.

+0

모두 사실이지만 OP가 학습해야 함 이렇게 물건을 얻기 위해 변형을 어떻게 쌓아 올리려고하는지! – Fattie