2017-01-05 1 views
0

"Transform.RotateAround"처럼 다른 개체 주위로 개체를 회전하고 싶습니다. 대신 각 통화의 각도를 증가시킵니다. "transform.localEulerAngles"를 사용할 때와 같이 정확히 정확한 각도로 각도를 설정해야합니다."Transform.RotateAround"와 동등하지만 증분이 큽니까 ?? 정확한 각도

나이를 찾고 있지만 좋고 깨끗하고 쉬운 해결책을 찾을 수 없습니다. http://answers.unity3d.com/questions/537155/is-there-a-method-to-set-the-exact-rotation-instea.html

은 각각 "Transform.RotateAround"호출하기 전에 회전을 다시 제안하지만, 어떻게 든이 저와 그것을 작동하지 않습니다 (최고 "해킹"중 하나) :

내가 이미 발견 좋은 해결책이 아닙니다.

+0

? 빈 GameObject를 객체의 중심에 놓고, 객체가 그 안의 회전으로 회전하는 것으로 생각한 적이 있습니까? 복잡한 계산을 추상화합니다. 나는이 질문의 변형을 이미 과거에 이미 언급 한 것처럼 느낀다. [here] (http://stackoverflow.com/questions/40897629/)와 [here] (http://stackoverflow.com/questions/40901164) /). 그들 모두는 비어있는 컨테이너 객체로 끓습니다. – Serlite

+0

것은 다른 위치에있는 많은 다른 점들을 중심으로 같은 물체를 회전시키고 싶습니다. 한 번에. 빈 컨테이너를 만들고 오프셋하는 것보다 더 동적입니다. – swisswiss

+0

다른 점을 중심으로 오브젝트를 회전하려면 해당 점의 가운데에 놓 이도록 컨테이너 오브젝트의 위치를 ​​변경하고 포함 된 오브젝트를 변환 (회전 반경 조정) 한 다음 그에 따라 회전 시키십시오. 아니면이 접근법을 사용할 수 없도록 만드는 조건이 있습니까? (그것은 그 질문에서 철저히 설명하는 것과 관련이 있습니다. 왜냐하면 그것은 내가 바라 보는 변형과 많이 다른 것처럼 보이지 않기 때문입니다.) – Serlite

답변

1

편집 : B에서 찾고 유지하는의

  • 업데이트 localRoation (의

    1. 업데이트 위치 : 인해 다른 객체 B 주위에 하나의 객체 A를 회전

      오해에 개정 대답은 두 단계를 포함한다 같은 쪽).

  • 는 개체 B의 rotationAxis 중심으로 회전 스크립트에 속하는 변환 다음 예제 코드를 달성 할 수 당신이 달성하려고하는 무엇

    using UnityEngine; 
    
    public class rot : MonoBehaviour { 
        public GameObject reference; 
        public float angle; 
        public Vector3 rotationAxis; 
        Vector3 direction; 
        void Start() { 
         // determine direction only once, to avoid infinite rotation. 
         direction = transform.position - reference.transform.position; 
        } 
        void Update() 
        { 
         Quaternion rot = Quaternion.AngleAxis(angle, rotationAxis); 
         transform.position = reference.transform.position + rot * direction; 
         transform.localRotation = rot; 
        } 
    } 
    
    +0

    이 작업을 수행 할 수 없습니다. 이는 객체의 회전 만 설정하기 때문입니다. 무언가를 회전 시키려면 물체의 위치를 ​​변경해야합니다. – swisswiss

    +0

    어, 어쩌면 내가 당신의 의견을 이해하지 못 하겠지만, 그 이유는 바로 localRotation을 사용했기 때문입니다. 제공된 축을 중심으로 전체 변환을 켭니다 (변환의 피벗 점 (0, 0, 0)을 암시 적으로 통과 함). 편집 : 신경 쓰지 마라, 이제 알았다. 그리고 나는 처음에 당신의 질문을 오해했습니다. 죄송합니다 – PlantProgrammer

    +0

    이것은 정확히 내가 무엇을 찾고 있었는지입니다. 그리고 4 줄의 코드. 마음이 날려. 하하 – swisswiss

    관련 문제