본문 바로가기

게임 개발 공부 정리

[RS] 서비스 기초

서비스는 여러 가지 쓰일 상황에 따른 내장 함수와 이벤트가 들어가 있는 객체이다.

 

게임을 시작할 때 필수적인 서비스 몇 개만 게임에 로드하고 익스플로러에 표시를 하게 된다.

서비스 몇몇개만 로드를 하는 이유는,

쓰이는 빈도가 적은 다른 서비스를 모두 로드하게 되면, 익스플로러 상의 스크롤 문제와 성능 문제가 생기기 때문이다.

 

그렇기 때문에 익스플로러 상에서 존재하는 메인 서비스가 아닌 다른 서비스에 액세스 하기 위해서는 game:GetService("Name")을 하여, 서비스를 생성시킨 뒤에 액세스를 하게 된다.

메인 서비스를 포함 한 모든 서비스는 겟 서비스로 받는 게 안정성 면에서 좋다.

왜냐하면 게임에 때때로 메인 서비스가 로드되지 않을 때가 있기 때문이다. (루아의 근본 설계 문제와 관련이 있는 것 같다.)

 

서비스 또한 속성 값을 가지는 객체이므로, 사용자가 원하는 이름으로 바꿀 수 있다.

game:GetService("")는, 매개 변수의 서비스 이름이 익스플로러 상에 존재하지 않는다면, 새로 만들어내게 된다.

만약 메인 서비스가 이름이 바뀐 경우라면, 새로 만들어진 메인 서비스를 게임을 실행하기 전 익스플로러 상에서 사용자가 임의로 바꿔놓은 값으로 맞추게 된다.

따라서 겉으로 작동되는 방식은, 메인 서비스가 설령 이름이나 속성 값이 사용자가 바꾸었다 해도, .(Dot) 액세스와 다르게 스크립트가 실행되면 이름이 변경된 것 까지 찾아내게 된다.

 

서비스 또한 일반적인 객체에서 사용되는 내장 함수(클리어 올 차일드 등등..)가 사용할 수 있지만 응용이 불가하다.

 

각 서비스 별 내장 함수에 대해서 간략히 알아볼 때는, 자동 완성 기능으로 나타나는 도움말로 알 수 있다.


스크립트는 실행될때 순차적으로 줄을 실행하다가 오류가 나게 되면, 오류가 난 줄의 시점에서 멈추게 된다.

 

Bool 등의 형태를 가진 변수를 문자열로 넘겨줘야할 경우는 

tostring(Bool_Var)로 해줄 수 있다.

 

서비스를 이용하여 게임패스 구입 예제

123 ID는 시험적으로 제공해준다,

프롬프트 겜페 펄체이스 피니시 메개 변수 : plr, id, wasPurchase

'게임 개발 공부 정리' 카테고리의 다른 글

[C] 서버-클라이언트 소켓 통신 예제 코드  (0) 2021.08.25
[RS] Local/Global 변수 기초  (0) 2021.02.03
[RS] Local/Server, ClickDetector  (0) 2020.12.09
[RS] 기타 정리  (0) 2020.12.06
[RS] 20-12-05 ~ 06 정리  (0) 2020.12.06