| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- readonly
- GetComponent
- removeAll
- 티스토리챌린지
- 너비탐색
- 크루스칼
- Simulation
- list clear
- unity korea
- articulation body
- dropdown
- dfs
- 행동트리
- 유니티 sparkmain(clone)
- sparkmain(clone)
- 유니티
- unity sparkmain(clone)
- C#
- 최단거리 알고리즘
- 디지털트윈
- 트리구조
- 드롭다운
- 최소신장트리 mst
- 오블완
- 깊이탐색
- Unity
- raycast
- 습관형성 #직장인자기계발 #오공완
- navisworks api
- sparkmain(clone) 무한생성
- Today
- Total
낑깡의 게임 프로그래밍 도전기
Unity 보강 본문
컴포넌트
색을 바꾸고 싶으면 머터리얼에 접근하는게 아니라 머터리얼을 담고있는 랜더러에 접근하는 것이다

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

처럼 new Vector3(0, 10 ,0)은 생성과 동시 초기화를 해준거다
new = 객체가 생성될 때 초기화 시켜주는 것


생성자도 당연히 독립적으로 각각 수행되어 각각 디버그로그가 찍힌다
this는 현재 나자신의 주소
프로퍼티
프로퍼티도 스태틱을 가질 수 있음

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

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


프라이빗은 아에 은닉 SerializeField는 인스펙터창에서는 바꿀수 있지만 코드로는X 퍼블릭은 다가능
그렇지만 수정할 수 있으니 휴먼 에러가 발생할 수도있기에 프라이빗 기능이 떨어질게 우려된다.
이 상황에는 인스펙터창에 뭘써도 스타트로 원하는 값을 초기화하고 시작하는게 방법일 수 있다.
이말인 즉슨 인스펙터창에 애초에 값을 적을 생각 말고 스타트에 초기화해 줄 값이 따로 있고 그것을 확인할 용도로만 쓰는게 맞다는 말이다.




피깍는 UI


C#은 기본적은 값타입(빌트인, 구조체 등)과 참조타입(클래스 등)으로 나뉘어져있다.
컴포넌트는 다 클래스다
Transform은 참조타입이고
position은 값타입이다
positon이 만약 참조타입이면 플레이어가 죽은 장소가 저장되서 스타트 될때 다시 죽은 자리에서 태어나게된다






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

위의 실습에서 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 |