아무리 형식이 없고 자유롭다고는 하지만, 아직까지 어떻게 써야 할지 몰라 매번 글을 작성할 때 마다 갈팡질팡한다. 형식이 자유로운 것과 형식이 없는 것은 엄연히 다르기에, 나만의 형식을 갖추기 위해 여러 포스팅 글도 보고, 다른 TIL 참고도 하는 중!
마크다운은 어떻게 적절히 쓸지, 글은 회고식으로 할지 노트정리식으로 할지 일기형태로 쓸지, 또 그림자료는 넣어야 할지 말아야 할지, 움짤은 뭘 넣어야 할지... 짤 찾는 시간이 제일 재밌는 것 같다 용어는 이걸 쓰는 게 맞는건지 이것 저것 생각하면서 쓰다보니, 글 쓰는 시간은 점점 길어지고, 하루 이틀 작성을 미루고, Today I Learn이 Week가 되고... 이러다가 곧 Month가 되는게 아닌가 싶다.
나는 생각이 이쯤 되면 항상 목적을 다시 곱씹곤 한다. '배운것'을 '간단히' '정리'하는 데에 초점을 두고 쓰려 한다.

최근 버전으로 unity를 써야해서 새로 2021.2.7f1로 깔았더니, UI가 좀 바뀌었다.

A : Toolbar
B : Hierarchy Window
C : Game view
D : Scene view
E : OVerlays
F : Inspector Window
G : Project Window
H : Status bar
Default > Save Layout...Assets폴더 > Scenes폴더에 우클릭 후 Create > Scene
Visibility(눈 모양) 체크해제 : 씬 화면(편집)에서만 안보임
Inspector 체크 해제 : 게임 내에서도 안보임
몇 몇 패키지는 지원이 중단되어 없어 질 수도 있으므로 내 에셋에서 확인하고 미리 업데이트 받아놓기
에셋 임포트 할 때, 다 들고오지 말기 (스크립트 같은 경우는, 유니티 버전이 달라서 에러 남)
컴퓨터의 폴더에 있는 에셋을 Project Window에 드래그 앤 드롭
shading : 그림자, 음영등의 효과를 처리하는 과정
legacy shader : 옛날 부터 쓰던 쉐이더
rendering : 컴퓨터를 이용해 사실감 있는 장면을 만드는 과정
cutout은 중간에 구멍낼때 쓰는것으로, albedo에서 texture로 구멍낸거 적용해서 사용
transparent 투명한 플라스틱 재질
fade 오브젝트가 흐려지며 없어짐
(둘 다 설정 후, alpha값과 metallic값을 조정해야 함)
terrain Component의 Mesh Resolution (On Terrain Data) (Scene view에서 큰 격자 하나가 100임) 최대 고도 제한이 Mesh Resolution의 Terrain Height로 설정되므로 너무 낮게 설정 하지 말기
Hierarchy Window에서 우클릭 > Create Empty > 드래그 앤 드롭
(부모 자식간 관계가 되며, 폴더의 RPS좌표 기준으로 자식 좌표가 새로 측정됨)
여러대 일 경우, 우선순위가 생기며 가장 높은 카메라만 Game view에 보인다.
Game view에서 마우스 클릭을 인식하는지 안하는 지도 결정함.
(즉 collider 빼면 마우스 클릭도 안됨, modeling 불러왔을 때, collider 넣어주기)
Transform 컴포넌트의 점3개(three dot)에서 카피 가능
체크 시, 스크립트에 따라 가변될 수 있음
체크 시, 스크립트에 따라 가변될 수 있음
skin mesh renderer: modeling 된 material의 rendering에 관한 Component
mesh renderer : 그냥 도형의 rendering
드디어 스크립트!
visual studio2019 연동하기 edit > preference > external script
스크립트를 드래그 앤 드롭으로 인스펙터에 넣으면 컴포넌트가 됨
generic : 클래스를 정의 할 때, 데이터 타입을 확정하지 않고 인스턴스를 생성할 때 데이터 타입과 갯수등을 지정하는 기능 (함수 원형 선언과는 다른 기능인 듯)
대소문자 바꾸면 다른 변수명으로 인식
변수명은 특수 문자 사용못함(언더바 제외), 숫자로 시작 못함
유니티의 부모 상위; 클래스, 스크립트 이름과 클래스 이름이 같아야 된다!
:의 쓰임자식 클래스(=파생 클래스) : 부모 클래스(=기반 클래스)
읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약
여러 관습 중, 표기법으로는 카멜 케이스, 파스칼 표기법, 헝가리안 표기법, 스네이크 표기법, 케밥 표기법 등이 있다. ex) helloWorld, HelloWorld, strHelloWorld hello_world, hello-world (다 똑같아 보이는데)
Unity Script의 내장 함수들
내장함수는 private 생략 가능
private void start(){}
private void update(){} // 여기에 작성하면 초당 24번씩 (24frame/sec 기준) 실행됨
private void Awake(){} // 깨어나자마자 실행하는 함수 (start보다빠름)
private void OnMouseDown(){} /* Game view에서 마우스로 버튼을 클릭해서,
마우스 버튼이 눌러질 때 실행됨 */
Debug.Log(); // print()와 비슷하게 쓸 수 있음
* 내장 함수(=local 함수) : 따로 정의하지 않아도 사용 가능한 함수, private가 기본
* 사용자정의 함수(=custom 함수) : 따로 만들어 사용하는 함수
변수, 함수, 구조체, 클래스 등의 다양한 내부 식별자(identifier)의 이름중복 등을 방지하고자, 내부 식별자에 사용될 수 있는 유효 범위를 제공하고 식별자의 소속을 정하는, 클래스 등의 상위 개념.
private 변수 : 기본
public 변수 : 밖에서 조정가능 (Component에 나옴)
지역 변수(=local 변수) : 함수 내에서 선언됨
전역 변수(=global 변수)