0
캔버스의 자식으로 객체 (A)를 인스턴스화하려고합니다. A의 위치는 B 객체의 위치를 사용하여 설정되며 Canvas의 하위 위치도 사용됩니다.Unity3d 포지셔닝 시스템 이해
내 질문에 유용하지만 A와 B에 모두 자식이 있는지 확실하지 않습니다.
내가 A를 생성 할 때, 내 debug.log()
이 그렇게하더라도 위치는 B의 위치가 아닙니다. I가 시도
if (Input.GetButtonDown("Fire1"))
{
GameObject Laser_Projectile = Instantiate(Resources.Load("Sprites/Object_Laser_Projectile") as GameObject);
Laser_Projectile.transform.SetParent(GameObject.Find("Canvas").transform, false);
this.transform.localPosition = GameObject.Find("Player_Objects").transform.localPosition;
: 여기
코드입니다 : 여기디버그의 말씀입니다 : 여기
내가 가진 무엇 position 및 localPosition을 사용하여 작업하고, 그것을 작동하게 할 방법이 없습니다. 또한 setParent 인수 (false 또는 true)를 사용하려고 시도했지만 true로 설정하면 최악의 경우도 발생합니다.내 질문은 : 내가 무엇을 놓치고 있는지, 무엇을 이해하지 못합니까? 전에는이 문제가 없었어요.
를 사용하여 객체의
localPosition
을 설정할 수 있도록같은 다른 오브젝트의 월드 위치에 부모의 월드 위치를 비교할 수 있습니다 객체의 부모 인 경우, 당신은 그것의 로컬 위치를'new Vector3 (0,0,0)'으로 설정할 수 있어야하고 그것의 부모 위치로 갈 것입니다. –
"Player_Objects"의 자식으로 그 일을했습니다. "Player_Objects"자체 ... 글쎄, 그게 뭔지 모르겠어 ... – Andromelus
Alfie가 말했듯이. "localPosition"은 "부모와 관련된 내 위치"를 의미합니다. 즉, 부모가 세계 어디 (또는 부모)인지는 중요하지 않습니다. 자녀의 localPosition의 VectorX.zero는 부모의 중간입니다. 당신이하는 일은 객체의 위치를 같은 * 숫자 값으로 설정하는 것입니다. * 부모가 가지고있는 것이기 때문에 옮겨 놓을 수 있습니다. 부모가 10, 10이고 자손의 localPosition을 10, 10으로 설정하면 부모의 중점에서 10 단위 씩 옮겨 졌으므로 자식이 "전역 적으로"20, 20이됩니다. –