어제 했던거 이어서 해보자
- 모르는 부분 스크랩
13.루비의 체력 상태 확인하기
하지만 Unity로 돌아가기 전에 할 일이 있습니다. 콘솔 창에 오류가 표시되었을 거라 예상하셨을 겁니다. currentHealth 변수가 private이라 해당 스크립트에서 액세스할 수 없습니다.
이전처럼 public으로 만들어야 합니다. 하지만 모든 변수를 public으로 만들면 버그를 일으킬 수 있습니다. 이는 액세스하고 변경하지 않아야 하는 변수의 경우 특히 그렇습니다. 예를 들어 currentHealth를 public으로 하면 maxHealth 값이 5로 설정되어 있는데도 다른 스크립트에서 10으로 변경할 수도 있습니다. 이를 피하기 위해서는 함수를 통해서면 변경할 수 있도록 하는 게 최선책입니다. 그렇게 하면 Clamp를 이용해 ChangeHealth가 0 미만이나 maxHealth 초과값을 가질 수 없게 했듯이 확인 과정을 거치게 됩니다.
따라서 (다른 스크립트를 통해 변경되는 것을 막기 위해) public으로 설정하지 않되, 다른 스크립트에서 currentHealth를 읽기만 하고 쓰지는 못하도록 합니다. 이를 위해서는 프로퍼티를 사용하면 됩니다.
17.요약
코드를 주로 다룬 이번 튜토리얼에서 학습한 내용입니다.
-
트리거의 작동 원리 및 Rigidbody가 트리거 진입 시 감지 방법 등 트리거 관련 내용
-
C#으로 사용자 함수 작성
-
private 및 public 액세스 수준 사용
-
If 선언문으로 조건이 true인 경우에만 실행되는 코드 작성
다음 튜토리얼에서는 이번에 배운 내용의 정반대 작업을 수행하게 됩니다. 루비에게 데미지를 입히는 게임 오브젝트를 추가해 보겠습니다. 그렇게 되면 체력 아이템이 훨씬 유용하게 사용될 것입니다.
step9~17
퍼블릭으로 처리하면 값을 참조하는 과정에서 혼선이 있을 수 있으니까
읽기전용인 get , 쓰기전용인 set 으로 프로퍼티를 수정하는 식으로
처리한다 정도!
오늘은 여기까지~
롤토체스 시즌종료 10일남았다
다이아 ㄱㅈㅇ
'1인개발 메이킹로그 > [Web game] 쿠크세이튼3마리오' 카테고리의 다른 글
[3주-12일차] 루비 프로젝트 chapter8 스프라이트 애니메이션 (0) | 2022.02.08 |
---|---|
[3주-11일차] 루비 프로젝트 chapter7 월드 인터랙션 - 데미지 영역과 적 캐릭터 (0) | 2022.02.07 |
[2주-9일차] 루비 프로젝트 chapter6 월드 인터랙션 - 수집 아이템 (0) | 2022.02.04 |
쿠크3마웹게임 개발 계획 수정-1차 (0) | 2022.02.04 |
[2주-8일차] 루비 프로젝트 chapter5 월드 인터랙션 - 이동 제한 (0) | 2022.02.04 |