2022.01.10 Today I Learned

BottledMind·2022년 1월 12일

TIL

목록 보기
2/27

아무리 형식이 없고 자유롭다고는 하지만, 아직까지 어떻게 써야 할지 몰라 매번 글을 작성할 때 마다 갈팡질팡한다. 형식이 자유로운 것과 형식이 없는 것은 엄연히 다르기에, 나만의 형식을 갖추기 위해 여러 포스팅 글도 보고, 다른 TIL 참고도 하는 중!

마크다운은 어떻게 적절히 쓸지, 글은 회고식으로 할지 노트정리식으로 할지 일기형태로 쓸지, 또 그림자료는 넣어야 할지 말아야 할지, 움짤은 뭘 넣어야 할지... 짤 찾는 시간이 제일 재밌는 것 같다 용어는 이걸 쓰는 게 맞는건지 이것 저것 생각하면서 쓰다보니, 글 쓰는 시간은 점점 길어지고, 하루 이틀 작성을 미루고, Today I Learn이 Week가 되고... 이러다가 곧 Month가 되는게 아닌가 싶다.

나는 생각이 이쯤 되면 항상 목적을 다시 곱씹곤 한다. '배운것'을 '간단히' '정리'하는 데에 초점을 두고 쓰려 한다.

아이고..머리야

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

1. UI


A : Toolbar
B : Hierarchy Window
C : Game view
D : Scene view
E : OVerlays
F : Inspector Window
G : Project Window
H : Status bar

  • layout 저장하기

    Toolbar에서 Default > Save Layout...
    원하는 이름으로 저장

2. Project Window

  • Scene 만들기

    Assets폴더 > Scenes폴더에 우클릭 후 Create > Scene

  • Visibility vs Inspector 체크 해제

    Visibility(눈 모양) 체크해제 : 씬 화면(편집)에서만 안보임
    Inspector 체크 해제 : 게임 내에서도 안보임

3. Asset & Package

  • 패키지 지원 중단

    몇 몇 패키지는 지원이 중단되어 없어 질 수도 있으므로 내 에셋에서 확인하고 미리 업데이트 받아놓기

  • assets import

    에셋 임포트 할 때, 다 들고오지 말기 (스크립트 같은 경우는, 유니티 버전이 달라서 에러 남)

  • asset import 하는 다른 방법

    컴퓨터의 폴더에 있는 에셋을 Project Window에 드래그 앤 드롭

4. Material

  • material의 shader

    shading : 그림자, 음영등의 효과를 처리하는 과정
    legacy shader : 옛날 부터 쓰던 쉐이더

  • Rendering Mode

    rendering : 컴퓨터를 이용해 사실감 있는 장면을 만드는 과정
    cutout은 중간에 구멍낼때 쓰는것으로, albedo에서 texture로 구멍낸거 적용해서 사용
    transparent 투명한 플라스틱 재질
    fade 오브젝트가 흐려지며 없어짐
    (둘 다 설정 후, alpha값과 metallic값을 조정해야 함)

5. Object

  • terrain 크기 세팅

    terrain Component의 Mesh Resolution (On Terrain Data) (Scene view에서 큰 격자 하나가 100임) 최대 고도 제한이 Mesh Resolution의 Terrain Height로 설정되므로 너무 낮게 설정 하지 말기

  • 오브젝트 폴더

    Hierarchy Window에서 우클릭 > Create Empty > 드래그 앤 드롭
    (부모 자식간 관계가 되며, 폴더의 RPS좌표 기준으로 자식 좌표가 새로 측정됨)

  • Main Camera

    여러대 일 경우, 우선순위가 생기며 가장 높은 카메라만 Game view에 보인다.

6. Component

  • Collider

    Game view에서 마우스 클릭을 인식하는지 안하는 지도 결정함.
    (즉 collider 빼면 마우스 클릭도 안됨, modeling 불러왔을 때, collider 넣어주기)

  • 잔디 너무 뒤에서 보면 안보임

  • copy position 기능

    Transform 컴포넌트의 점3개(three dot)에서 카피 가능

  • Rigidbody의 is Kinematic

    체크 시, 스크립트에 따라 가변될 수 있음

  • Collider의 is Trigger

    체크 시, 스크립트에 따라 가변될 수 있음

  • skin mesh renderer vs mesh renderer

    skin mesh renderer: modeling 된 material의 rendering에 관한 Component
    mesh renderer : 그냥 도형의 rendering

7. Script

드디어 스크립트!

  • visual studio2019 연동하기 edit > preference > external script

  • 스크립트를 드래그 앤 드롭으로 인스펙터에 넣으면 컴포넌트가 됨

generic : 클래스를 정의 할 때, 데이터 타입을 확정하지 않고 인스턴스를 생성할 때 데이터 타입과 갯수등을 지정하는 기능 (함수 원형 선언과는 다른 기능인 듯)

8. 코딩 (C#)

  • 변수명

    대소문자 바꾸면 다른 변수명으로 인식
    변수명은 특수 문자 사용못함(언더바 제외), 숫자로 시작 못함

  • monobehaviour

    유니티의 부모 상위; 클래스, 스크립트 이름과 클래스 이름이 같아야 된다!

  • 콜론:의 쓰임

    자식 클래스(=파생 클래스) : 부모 클래스(=기반 클래스)

  • Convention (관습)

    읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약
    여러 관습 중, 표기법으로는 카멜 케이스, 파스칼 표기법, 헝가리안 표기법, 스네이크 표기법, 케밥 표기법 등이 있다. 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 함수) : 따로 만들어 사용하는 함수

  • Namespace

    변수, 함수, 구조체, 클래스 등의 다양한 내부 식별자(identifier)의 이름중복 등을 방지하고자, 내부 식별자에 사용될 수 있는 유효 범위를 제공하고 식별자의 소속을 정하는, 클래스 등의 상위 개념.

  • private vs public

    private 변수 : 기본
    public 변수 : 밖에서 조정가능 (Component에 나옴)

  • local vs global

    지역 변수(=local 변수) : 함수 내에서 선언됨
    전역 변수(=global 변수)

9. Tip

  • z를 안쪽 폭으로 보이게 하고 Scene 작성하자.

  • 이어폰 가지고 다니기 (게임 만들 때 오디오 테스트)

  • Alt + 좌클, Alt + 휠클, Alt + 우클로 Scene 조작 가능

  • 코딩할 때 tab 쓰면 미리 제시된 것, 작성된 것들 팍팍 넘어감!

  • VS2019 단축키

    주석 : ctrl + k, ctrl + c
    주석해제 : ctrl + k, ctrl + u
profile
developing...

0개의 댓글