게임 제작 기록 with Unity/리듬게임

[리듬게임/Unity/C#] 동적으로 생성되는 오브젝트의 위치가 이상하다?!?

Ardmos :) 2022. 4. 22. 20:21

 

게임 내에서 동적으로 생성하는 100x100 오브젝트의 위치가 자꾸 50씩 엇나갔다.(화면 상단 노란색 막대기들)

그래서 아래처럼 위치를 localposition대신 position으로 하고, 부모 오브젝트를 설정해주니까 제 자리를 찾아갔는데  

GameObject note = Instantiate(notePrefab, noteAppearLocation.position, Quaternion.identity, transform);

 

 

 

문제는 아래처럼 하니까 다시 이상한데에 생성되더라.

부모 오브젝트를 기준으로 Vector.zero 포지션에 생성되길 바랬던건데, 바람과는 다르게 화면 저~~~~~ 아래에 생성된다. 

GameObject note = Instantiate(notePrefab, Vector3.zero, Quaternion.identity, noteAppearLocation.transform);

 

 

혹시 localposition을 Vector.zero로 만드는 타이밍 문젠가 싶어서 추가로 한 번더 잡아주니까 잘 된다. 

타이밍 문제였나봄. 

GameObject note = Instantiate(notePrefab, Vector3.zero, Quaternion.identity, noteAppearLocation.transform);
note.transform.localPosition = Vector3.zero;

 

 

 

결국 아래처럼 최종 수정했다. Instantiate의 생성자를 맹신하면 안되겠다. 

GameObject note = Instantiate(notePrefab, noteAppearLocation.transform);
note.transform.localPosition = Vector3.zero;

 

728x90