2017-03-04 2 views
1

화합으로 나는 내 게임 객체가 사용하고있는 스프라이트의 피벗 포인트를 얻으려고합니다.Unity : 게임 개체의 스프라이트 피벗을 얻는 방법?

게임 오브젝트 (A라고 부름)를 게임에 배치하는 동안 스프 라이트의 피벗 포인트를 변경했습니다. 이제 A의 변형에서 다른 객체를 생성하려고 할 때, 새로운 게임 객체와 나는 그것이 뜨겁다는 것을 알고 있습니다. A의 왼쪽 상단에서 생성됩니다. 어떻게 든 스프라이트의 중심을 계산해야합니다. 세계 좌표계에서 사용하고 있습니다.

는 I이 시도 :

Debug.Log(tempGameObj.GetComponent<SpriteRenderer>().sprite.pivot); 

을하지만 피봇 포인트 (-0.25, 1.25) 동안이 (-80,0,400)과 같은 결과를 생성한다.

어떻게 센터를 계산할 수 있습니까?

답변

2

은 당신이 찾고있는 것은 여기 ScreenToWorldPoint 방법

Vector3 center = Camera.main.ScreenToWorldPoint(tempGameObj.GetComponent<SpriteRenderer>().sprite.pivot); 

당신이 그것을 https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

+1

이 옳다고해야 할 경우에 documantation입니다. ['Sprite.pivot'] (https://docs.unity3d.com/ScriptReference/Sprite-pivot.html)은 픽셀 단위로 반환되며 정상적인 세계 pos로 변환하려면'ScreenToWorldPoint'가 필요합니다. OP가 수행하는 작업에 따라 OP는 ['InverseTransformPoint'] (https://docs.unity3d.com/ScriptReference/Transform.InverseTransformPoint.html)를 사용하여 월드 위치를 Sprite의 로컬 위치로 변환해야 할 수도 있습니다. – Programmer

+0

@ 할릴, 이것이 당신의 문제를 해결했다면 그것을 받아들임으로써 해결되는 것처럼 잊지 마라. – Programmer

관련 문제