낑깡의 게임 프로그래밍 도전기

Unity 보강 본문

Unity C#

Unity 보강

낑깡겜플밍 2023. 10. 7. 16:48
반응형

컴포넌트

색을 바꾸고 싶으면 머터리얼에 접근하는게 아니라 머터리얼을 담고있는 랜더러에 접근하는 것이다

 

new는 새로 만드는 것으로 Vector3.zero는 선배개발자가 미리 만드러놨지만 위처럼 우리가 새로 지정해서 사용할 것은 생성되어있지않기에 새로 만들어준거다

 

new Vector3()의 괄호는 생성자다

 

해당 예시

처럼 new Vector3(0, 10 ,0)은 생성과 동시 초기화를 해준거다

new = 객체가 생성될 때 초기화 시켜주는 것

생성자도 당연히 독립적으로 각각 수행되어 각각 디버그로그가 찍힌다

 

this는 현재 나자신의 주소

 

 

프로퍼티

프로퍼티도 스태틱을 가질 수 있음

 

get만있으면 읽기 전용, 못바꾸게 할 때

프로퍼티로 값을 세팅하는 이유 중 하나

프로퍼티는 함수이기 때문에 값을 세팅할때 조건을 달 수있다.

예를 들어 맥스hp를 100으로 제한 한다면 사용자가 hp를 1000라고 적었을 때 100으로 세팅된다.

이 경우는 알아서 조건에 도달했을 때 파괴까지 실행
Hp를 깍을때 마다 검서하옂 ㅏ동으로 파괴가능

프라이빗은 아에 은닉 SerializeField는 인스펙터창에서는 바꿀수 있지만 코드로는X 퍼블릭은 다가능

그렇지만 수정할 수 있으니 휴먼 에러가 발생할 수도있기에 프라이빗 기능이 떨어질게 우려된다.

이 상황에는 인스펙터창에 뭘써도 스타트로 원하는 값을 초기화하고 시작하는게 방법일 수 있다.

 

이말인 즉슨 인스펙터창에 애초에 값을 적을 생각 말고 스타트에 초기화해 줄 값이 따로 있고 그것을 확인할 용도로만 쓰는게 맞다는 말이다.

인스펙터 창 안쓰고 표시하는 방법 히히
이렇게 하면 기껏 설정해놨던게 다시 겟컴포넌트를 하고 것컴포넌트값은 null이 된후 hpText를 null로 만들어버려서 못 쓰게된다
멋진 프로퍼티! 맥스값도 고정해 주고 값이 바뀔때 UI도 바뀌게하고 조건에 맞춰 디스트로이도 하게함

피깍는 UI

\image 터미널 중 중간 꺼 쓰고
프로퍼티에서 피가 깍일 때마다 Fill Amount 같이 제어

C#은 기본적은 값타입(빌트인, 구조체 등)과 참조타입(클래스 등)으로 나뉘어져있다.

컴포넌트는 다 클래스다

Transform은 참조타입이고

position은 값타입이다

positon이 만약 참조타입이면 플레이어가 죽은 장소가 저장되서 스타트 될때 다시 죽은 자리에서 태어나게된다

나랑 충돌한 게임오브젝트의 겟컴포넌트를 가져오느넋
한번 찾은 겟컴포넌트 활용해서 문구 바꿔주기
보모 자식 클래스 사용법
부모꺼의 함수도 같이 쓰고 싶을때 base사용

디스트로이는 유니티 사이클상 맨마지막에 수행 하기 때문에 모든 함수 호출 후 디스트로이

위의 실습에서 hp를 100초과해서 쓰면 바로 적용이 안되는 이슈.

그것은 초기화를 안시켜줘서.

스타트나 어웨이크 를 쓰는 방법

그러나 추가적으로 어웨이크르르 쓰기 복잡해질것을 우려. 이부분은빈 함수를 넣어두고 그안에서 구현하면 좋다.( 활용성, 확장성 고려)

 

인터페이스는 상호작용을 위해 기본이 퍼블릭이다.
모노비헤이비어는 가지고있어야하므로 추가 상속

 

 

기본적으로 생기는 이 문구는 구현하지 않았으니 날려버리겠습니다 라는 뜻

 

이런건 디폴트 기본변수

 

인터페이스 힛에이블 하나로 모든 힛 상용작용이 가능 해 지고 개방폐쇠릐 원칙을 지킴
서로를 변수로 사용하기 때릴수있는 애는 내구도를 알아서 깍고 맞는애는 뭐가 필요하고 등등
서로 ㅁ판자 나무 적 등 여러 물건대한

서로 맡고 이슨ㄴ 것에 대한 정보 공유

맞을수 있는 것에 대하 ㄴ정보 교환

 

 

반응형

'Unity C#' 카테고리의 다른 글

Unity 기초 애니메이션과 UI  (0) 2023.10.11
Unity 애니메이션 및 UI  (0) 2023.10.10
Unity 오브젝트풀과 애니메이션  (0) 2023.10.06
Unity 복습 플로우 차트  (0) 2023.10.06
Unity 복습  (0) 2023.10.04