"position.x + spr.bounds.size.x /2 < -8 보다 작을때" 가 무슨 말인지 잘 모르겠습니다.
배경 스프라이트의 중심점이 position.x 이고 + 배경 스프라이트 사이즈의 반을 더한 값이 월드좌표계 X 좌표 -8 보다 작아질 때 뒤로 넘긴다는 것이 알 것 같으면서도 잘 모르겠습니다. ㅠㅠ
position.x + spr.bounds.size.x /2 < -8 보다 작아지면,,,,
-7 > -8
-8 = -8
-9 < -8
position.x + spr.bounds.size.x /2 = -9 가 될때인데,,,
position.x + spr.bounds.size.x /2 는 배경스프라이트가 이동할 때 표시되는 오른쪽 제일 끝 하단의 X축 좌표 인가요?
뭔가 두리뭉실하게는 이해가 되는데 정확하게는 어떻게 그렇게 작동하는지 몰라서 질문 남깁니다.
Answer 2
1
답변 감사합니다!!
제가 어렴풋이나마 이해하고 있었던게 맞는거였군요? ㅎㅎ
말씀해주신대로 코드를 짜서 게임을 프레임 단위로 실행시키며 콘솔창 rightPosition 값이 -8 보다 작아지는 걸 확인하니 배경 동작이 이해 되었습니다. 근데 소수점 단위로 넘어가는건 몰랐어요 ㅠㅠ
항상 자세하게 설명해 주셔서 정말 감사합니다!!
1
말씀하신 곳에 답이 있습니다. ^^
position.x + spr.bounds.size.x /2 이 오른쪽 제일 끝 하단의 x축 좌표입니다.
좀더 설명드리자면 움직이는 이미지의 가운데 센터의 점이 position.x 이죠.
이 값은 계속 왼쪽으로 움직이고 있고요.
그리고 spr.bounds.size.x /2 가 이미지의 절반사이즈이고요.
position.x 가 위치를 넘어갔을때 새로 셋팅을 해주지 않으면 이미지가 계속 왼쪽으로 흘러갑니다.
그래서 position.x + spr.bounds.size.x /2(왼쪽 하단 위치) 가 화면 왼쪽을 넘어가는 순간
position.x 위치를 재조정하게 됩니다.
이해가 안가시면 이렇게 한번 코드를 짜보시면서 값을 살펴보세요.
float rightPosition= position.x + spr.bounds.size.x /2 ;
print(rightPosition);
if(rightPosition < -8){
// 실행로직
}
코드를 길게 짜면 쉽게 이해가 갈수도 있습니다.
그리고 혹시 아시겠지만 값이 1단위로 넘어가는 게 아니라 소수점단위로 넘어갑니다.
rightPosition 값이 계속 조금씩 작아지다가요. -7.7 -7.8, -7.9 이런식으로요.
그러다가 -8 보다 작아지는 순간에 "실행로직"이 실행되죠.
그리고 이해하기 쉬운 다른 방법이 있다고 생각해보면요.
spr.bounds.size.x 가 아마 4인가 3인가 될거예요.
이 값을 그냥 고정을 해서 소스를 살펴볼수도 있고요.
다음과 같이요.
if(position.x + 4) <-8 ;
print(position.x);
if(rightPosition < -8){
// 실행로직
}
position.x + spr.bounds.size.x /2 이만큼에서 값이 계속 바뀌니까요. 정확한 값을 생각하기보다는 다음과 같이 머리속에서 그리시면 좋습니다.
position.x + spr.bounds.size.x /2 (이미지의 오른쪽 끝 위치)
혹시 이해안되시면 다시 말씀 주세요. 감사합니다. ^^
캐릭터 변경에 관해
0
220
1
Asteroid 생성에 관련해서
0
182
1
Part4 유니티로 세가지의 게임만들기 강의
0
206
1
Clamp 사용 시 앞서 설정한 ViewportToWorldPoint의 min, max를 사용하지 않고 새로 설정하는 이유가 있을까요
0
268
1
섹션8 슈팅게임 프로토타입 만들기3(적과 발사체)
0
261
1
캐릭터 고정데이터 로딩 강의
0
319
1
Destroy 함수 질문
0
407
1
GetComponent 강의 질문
0
339
1
transform.position과 transform.Translate 의 차이가 뭔가요??
0
1906
1
강의도중 질문이 있습니다
0
485
1
강의자료
0
279
0
117강 구조체를 정의하여 ShipData 구성
0
218
0
굳이 InitTime을 만들어서 호출 하는 이유가 있나요?
0
287
0
GameManager 의 Start()가 스페이스 누를때마다 반복실행됩니다.
0
409
1
Collider인 other.gameObject;
0
423
0
Generic에 대한 질문이 있습니다.
0
257
0
gameObject.setActive(false);
0
575
1
애플 앱스토어
0
240
0
비주얼스튜디오 오류
0
2140
1
part4강의
0
307
1
발사체 스피드
0
288
1
4분 44초 제가 이해한게 맞는지 궁금합니다
0
259
1
2분 44초 왜 void 함수를 써야하나욤..?
0
349
1
해당 부분 업데이트
0
254
1

