인프런 커뮤니티 질문&답변

그럼날아봐님의 프로필 이미지
그럼날아봐

작성한 질문수

유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발

배경스크롤

왜 이럴까요? ㅠㅠ 스피드를 수정하니까 배경이 벌어져요

해결된 질문

작성

·

241

2

speed를 2로 했을때는 배경 스크롤이 잘되는데요 1.5로 수정하니까 스샷처럼 배경이 벌어집니다.

이유가 뭔지 몰라서 질문 드립니다.

답변 2

2

bg1에 있는 BG Script의 speed 값과 bg2에 있는 BG Script의 speed 값이 서로 달라서 그랬네요 ㅠㅠ

둘다 똑같이 1.5로 맞춰주니까 잘돌아갑니다.

아까는 bg1 은 1.5, bg2는 2로 되어 있더라구요.

비주얼스튜디오에서 BG Script 의 speed 값을 조정해주면 bg1과  bg2의 스크립트 speed 값도 자동으로 같이 조정되는거 아닌가요?

각 오브젝트에 있는 컴포넌트에서 일일이 다 수정해주어야 하는건가요?

좀 안다고 강의를  띄엄띄엄 들었더니 기초가 없네요 ㅠㅠ

1

UDevApp님의 프로필 이미지
UDevApp
지식공유자

지금 상황에서는 오브젝트 콤포넌트의 값을 수정해야 합니다. 

기초가 없는 건 아니신거 같고요.  원래 이게 애매하게 동작합니다.

스크립트에 있는 항목의 우선순위가 조금 애매하게 다릅니다. 

순서를 조금 잘 생각해야 이해가 가는 문제입니다.

우선 스크립트가 오브젝트에 추가가 되지 않은 상황이 있다고 해보면요.

지금 스샷에 있는 위치의 public float speed = 2;  라고 되어 있을 경우 스크립트에 드래그를 하여 붙인 상태가 되면 유니티에디터로 이 2값이 들어갑니다. (처음 한번만 유니티로 들어갑니다) 나중에 스크립트를 수정해도 public float = speed = 1.5f 이렇게 해도 먹지 않게 되어서요.

이걸 수정하려면 유니티의 에디터에서 값을 수정해줘야 실제로 적용됩니다. 코드 상에 있는 초기값은 스크립트를 드래그 할때만 적용되거든요.

나중에 다시 값을 수정하려면 에디터를 적용해야 합니다. 이걸 코드상에서 수정하려면 speed = 1.5f 를 스타트안에 집어 넣어야 합니다. 이렇게 하면 또 에디터에서는 숫자를 아무리 입력해봐도 안먹히죠.

결론만 이야기하면 선언부 초기값은 처음 한번만 먹히고 나중에 수정하려면 유니티 에디터상에서 값을 수정해야 합니다. 

그래서 이런 오류를 방지하려면요. 코드상에서 적용할 것인지  스타트에서 적용할 것인지를 마음속에 정하고 적용해야 합니다. 

좋은 주말 되세요 ^^

그리고 오류는 직접 해결하면 실력이 확 늘게 되니까요 너무 걱정하지 않으셔도 될 것 같습니다. 원래 프로그래밍 하려면 아는 언어도 년단위로는 한번씩 다시 쭉 봐야 하거든요. 한번에 알수 있는 사람이 없잖아요. 나중에 볼때는 일주일 걸릴 일도 2~3일이면 됩니다. 

그럼날아봐님의 프로필 이미지
그럼날아봐

작성한 질문수

질문하기