반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
유니티 오브젝트 이동(transform.position) 이상한 곳으로 갈 때 해결 방법 본문
반응형
void setmix(int index, GameObject image)
{
float x = mixposition[index, 0];
float y = mixposition[index, 1];
float z = mixposition[index, 2];
image.transform.position = new Vector3(x, y, z);
//image.transform.localPosition = new Vector3(x,y,z);
Debug.Log(image.transform.position);
print(x);
print(y);
print(z);
}
유니티에서 오브젝트를 순간이동 시키려면 보통 vector3로 transform.position에다가 값을 넣을 것임
근데 내 프로젝트에서 image를 그렇게 옮겼더니 캔버스에서 벗어나 이상한 곳으로 튀어나가는 현상이 있었음
더 이상한 건, 코드에서 좌표를 아무리 찍어봐도 너무 정확한 위치를 출력하는데
실행해서 오브젝트의 포지션 값을 보면 -220이 아니라 -28160 이런 곳에 가있음ㅋㅋ
[해결방법1]
일단 image의 부모인 오브젝트의 위치가 0,0,0인지 확인해서 초기화해줌
[해결방법2]
https://answers.unity.com/questions/1570849/transformposition-incorrect.html
자식 객체의 위치를 정확하게 옮기려면 transform.localPosition을 사용
void setmix(int index, GameObject image)
{
float x = mixposition[index, 0];
float y = mixposition[index, 1];
float z = mixposition[index, 2];
image.transform.localPosition = new Vector3(x,y,z);
}
코드 변경
유니티 왼쪽 위에 Local로 변경
실행해보면 정확하게 이동하는 것을 확인할 수 있다
반응형
'유니티 > 개발' 카테고리의 다른 글
unity 슈팅게임 총알 5개 한 번에 쏘는 방법(GetComponentsInChildren) (0) | 2020.02.04 |
---|---|
unity 변수/함수/오브젝트 다른 씬에서 접근, 공유하기(DontDestroyOnLoad) (0) | 2020.02.02 |
유니티 GameObject와 Prefab 차이 (0) | 2020.02.02 |
유니티 코드에서 return이 if문 안에만 있으면 안 되네 (0) | 2020.02.02 |
유니티 Resources.LoadAll으로 리소스 파일 전체 불러오기(sprite 불러오기) (0) | 2020.01.19 |
Comments