내가 로컬하고 그냥 일반하고 착각해서 로컬로 해줘서 잘 위치 로테이션 잡히는데..
문제는 아이템을 버리면 스케일이 늘어난다.. 스케일 건드려주는거 전혀 없고
그냥 아이템 주으면 그 아이템 위치를 로컬 포지션 로컬 로테이션 해줘서 모양만 잡아준게 다인데 버릴때마다 스케일이 늘어나네..
물론 코드에서 스케일 해서 이것도 그냥 값 고정값으로 해주면 안늘어날거같긴한데 이렇게 까지 해줘야하나 싶어서 글 올려봄..
if (Input.GetKeyDown("e")) {
if (check == false) {
Vector3 handPos = new Vector3 (1, -2, 2);
Quaternion handRot = Quaternion.Euler (-90, 0, -90);
item = eyeInfo;
eyeInfo.transform.gameObject.GetComponent<Rigidbody> ().isKinematic = true;
eyeInfo.transform.parent = playerHead;
eyeInfo.transform.localRotation = handRot;
eyeInfo.transform.localPosition = handPos;
Cursor.SetCursor (null, Vector2.zero, CursorMode.Auto);
check = true;
loot [index] = state;
}
}
}
void Drop(){
if(Input.GetKeyDown("e")){
if (check == true) {
item.transform.parent = null;
item.transform.gameObject.GetComponent<Rigidbody> ().isKinematic = false;
check = false;
}
}
}
코드는 이것뿐인데..
버릴때 뭔가 문제가 있나? 왼쪽 처럼 버릴때에 저렇게 위로 향하면 위로 늘어나고
오른쪽처럼 버릴때 눕혀저 있으면 저렇게 늘어남..
뭔가 혼용으로 인한 문제가 아닌가 싶읍니다
고무고무ㅋㅋ
부모 오브젝트의 scale도 자식 오브젝트에게 적용되기 때문에, 부모 바꿀때 스케일이 바뀌는 일이 생길수 있긴함
아하 부모 설정되고 해제되고 이렇게 반복되는 과정에서 설정되는 부모의 스케일에 영향을 받으면서 그럴수있다는건가..
그럼.. 그냥 코드에 스케일도 따로 지정 해줘야던지 해야겠다 흠.
parent = playerHead 이거말고 SetParent(playerHead, false); 이거 써보는게 어떰
원래 parent에 바꿀 부모 지정하면 월드좌표,크기,회전 보존시키려고 로컬값들이 제멋대로 바뀌는데, SetParent 두번째 인자가 월드포지션 유지할건지 로컬포지션 유지할건지 고르는거라서 로컬값 유지시키면서 부모만 바꿀수 있음
그렇게 해줘도 그럼.. 고무고무를 넘어서서 여의봉 수준.. 컴포넌트도 뭐 리지드 바디 , 콜라이더 뿐인데.. 다른건 그냥 트랜스폼 렌더러 기본 그런거고..
이상한거 발견함.. 이게 버릴때에 문제가 있나봐.. 앞으로 버려서 즉 아이템이 버려질때 망치의 방향이 세로로 되어있으면 세로로 늘어나고 내가 밑으로 시선 내려서 버려봤더니 아이템이 가로로 버려지면 가로로 늘어남..