C++ cin 과 getline의 함수 차이

이미지
cin 과 getline의 함수 차이 일반적으로 C++ 에서는 cin을 사용하나,  공백을 포함한 문자열을 받을 때 getline를 사용하는게 편하다 사용자가 "a b c" 를 입력시 cin은 띄어쓰기, |n 등등을 구분자로 사용하기에 "a"만 출력한다, getline은 공백을 포함한 그대로 "a b c"를 출력한다 만약 getline과 cin를 혼합하여 사용할때 cin은 띄어쓰기, '|n' 등등을 구분자로 사용하여 버퍼를 지우지 않기에 cin.ignore() 로 버퍼를 지워줘야 한다. (혹은 엔터를 입력값으로 받는다) 무한 입력 탈출기는 만들어두자

유니티 Animation Curve 조작법 메모

Shift + 마우스 휠 시 y 좌표 간격, ctrl + 마우스 휠 시 x 좌표 간격을 조정가능함

ParticleSystem Rotation 에 대한 문제해결 메모

2D 게임을 만드는 도중 Particle System를 다루다가 회전값을 어떻게 줘야할지 몰라 애먹었다. 그 이유는 총알이 벽에 맞아 반대로 팅겨나와야 하나 particleSystem이 통상적인 z값이 먹히지 않았기 때문에 z값을 x와y축으로 표현해야 하는 일이 생겼다. 하지만 나는 Quaternion에 대해 전문적인 지식이 전무하기에 스스로 해결하기에는 포기했고 검색하기로 했다. 다행이 유니티 포럼으로부터 해결책을 찾아  ParticleSystem > Renderer > Render Alignment 에서 Local로 바꾸니 간단히 해결됐다.

Layermask,Raycast 에 대한 메모

onTriggerEnter나 CollisionEnter를 사용할 때 Rigidbody와 Collider가 있는지 확인하고  Colldier내 isTrigger의 유/무를 살펴보자 transform.gameObject.layer 에서 가져오는 건 번호지 값이 아니다. 값을 비교하고 싶으면 비트연산을 하자. 예시)  if(layermask == 1 << transform.gameObject.layer)

Hashset 과 List의 차이

중복멤버 차단 검색 최적화 인덱스 사용 불가

HPA*

HPA* 속칭 거의 최적화된 A* 길찾기 라고 불리는 2006년도 길찾기 알고리즘이다. 좋음(초록) / 나쁜(빨강)  영향이 끼침 레벨이 높으면 - 속도의 평균격차  ( 속도 평균이 일정한가 ) 속도 초기화 속도 메모리 유동성 가장 작은 클러스터 길이가 길수록- 유동성  속도 그리드를 추상적 그래프로 만들어 A* 길찾기를 하는식이다. 단계는 다음과 같다. 1. 시작 노드와 도착 노드를 구한다. 2. 시작 노드와 도착 노드를 가장 작은 레벨의 클러스터의 테투리에 연결한다. 3. A* 한다  3-1. 현재 노드가 maxLevel에서 0 level까지 클러스터의 출입구를 검색해 있다면 출입구를 반환, 아니라면 그대로 시작.  3-2. 현재 노드와 끝 노드가 같은 클러스터가 있다면 다음 레벨로.  3-3. 0 level에도 같은 클러스터라면 출입구를 반환한다. 4. 얻은 추상화된 길을 실체화 한다, 필요한다면 smoothing 작업도 한다. 5. 끝 A*과 비교해서 장점 더 빠름 메모리 소모 절약 시도성( fail faster ) 단점 pre-processing으로 인해 초기화 할때 상대적으로 매우 느림 유동성 -  맵이 달라질 때 빠르게 대처할 수 있는가  (뭐 어디 한 점이 부서지면 그리 영향이 없지만 어디 대폭발 같이 맵에 큰 영향이 끼치는 일이 일어나면 버벅인다) 명칭에 맞게 매우 가끔식 덜 최적인 길을 줄 수 있음 자료 https://webdocs.cs.ualberta.ca/~mmueller/ps/hpastar.pdf  HPA* 논문 링크

[유니티] UI 관련 화면 해상도 크기에 따라 맞추기

 Canvas Object -> Canvas Scaler 참고 https://docs.unity3d.com/kr/2018.4/Manual/script-CanvasScaler.html