본문 바로가기

전체 글

(37)
Starter Assets - ThirdPerson Apply Root Motion 적용시 느려지는 문제 해결법(Apply Root motion & character Controller velocity 충돌) apply root motion을 체크하면 character controller의 velocity 값이 작아지는걸 확인했는데, root transform position(Xz)의 bake in position을 체크하지 않아서 움직이지 않는거 같다.(기본으로 주는 애니메이션이 xz이동 하지 않으니 체크해도 소용없을거 같긴 하다.)  private void Update() { _hasAnimator = TryGetComponent(out _animator); JumpAndGravity(); GroundedCheck(); Move(); checkAnimationRootMotion("At..
유니티 셰이더 (Unlit Shader) 뜯어보기 Unlit Shader 뜯어보기먼저 빛의 영향을 받지 않는 Unlit shader부터 뜯어보자.먼저 shader를 unlit shader를 하나 생성해주고, material 또한 생성해 unlit으로 변경해준다.이를 현재 object에 drag & drop 해보면 음영처리가 없고, 밋밋하게 바뀐다.입체감이 전혀 없다.먼저 생성한 shader를 클릭해서 안으로 들어가면 다음과 같은 script가 적혀있을것이다.Shader "Unlit/TestShader"{ Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 100 ..
백준 2606번 - 바이러스 (C++/BFS/Graph) 문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 접근법 간단한 BFS문제이다. 오랜만에 adjacants를 쓰는 문제가 나와 기분이 좋았다. (그동안은 배열에서 +- 1하면서 하느라 귀찮았다...) BFS를 시작점을 1로 해서 visited가 1로바뀌는 순간마다 cnt를 ++ 해주면 된다. 다만 자기자신은 빼야하므로, 마지막 출력때 -1을 해주었다. BFS개념을 알고있으면 얼마 걸리지 않을 문제이다. 코드 #include #include #in..
백준 4963번 - 섬의 개수(C++/그래프/너비 우선 탐색/BFS) 문제 접근법 저번의 단지번호 붙이기와 코드가 매우 동일하다. 다만 이번엔 대각선까지 한 섬으로 입력을 받는다. adjacants 즉 연결관계를 직접 입력해주지 않는 BFS/DFS문제의 경우에는 인접지역을 직접 탐색해 줘야한다. 나는 dx,dy를 각각 8의 크기로 두고 아래와 같이 선언했다 int dx[8] = { 1,-1,0,0,1,1,-1,-1 }; int dy[8] = { 0,0,1,-1,1,-1,1,-1 }; 물론 BFS에 넣어줄때 직접 x,y에 +, - 해가며 해줄순 있겠지만 코드 간소화를 위해 위 같이 선언후, for (int i = 0; i ..
백준 2156번 - 포도주 시식(C++/DP/Dynamic Programming) 문제 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고민하고 있다. 1부터 n까지의 번호가 붙어 있는 n개의 포도주 잔이 순서대로 테이블 위에 놓여 있고, 각 포도주 잔에 들어있는 포도주의 양이 주어졌을 때, 효주를 도와 가장 많은 양의 포도주를 마실 수 있도록 하는 프로그램을 작성하시오. 예를 들어 ..
백준 10816번 - 숫자카드2(C++/병합 정렬/ Merge Sort/ 이분 탐색) 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고, 10,0..
백준 1992번 - 쿼드트리(C++/분할 정복/ 재귀 함수) 문제 접근법 저번에 풀었던 1780번 종이의 개수와 거의 똑같은 문제라 봐도 문제 없을듯 하다. 같은 색깔(숫자)가 나올때 까지 4등분으로 분할하고, 같은 색깔이 나오면 그때서야 출력을 하면 된다. 처음 입력이 모든숫자가 1이면 1, 0이면 0을 출력하면 된다. 문제를 이해했다면 괄호를 어떻게 출력할지는 고민하지 않았다. 재귀 함수 특성상 함수가 어떻게 돌아갈지 시뮬레이션 돌리기가 힘든 부분이 있는거 같다. divided했을때 같은수면 그 수를 출력해주고, 다른수면 cout
백준 2667 번 - 단지번호붙이기(C++/BFS/Graph) 문제 접근법 집단을 이루고있는 개수, 그 집단의 구성수 를 보고 그래프로 풀수 있겠다 생각했다. 다만 탐색 이전에 미리 노드간의 연결을 표현했던것 과는 다르게, bfs를 하면서 상하좌우를 탐색하면서 길을 찾아나가야 했다. 이전 BFS문제들과 탐색방법 하나만 달라서 접근은 쉬웠으나, 입력을 띄어쓰기 없이 받는다. 즉 0 1 0 0 0 1 1 이 아니라 0100011 로 받는다. string으로 한줄을 받고, 한 문자마다 '0' 을 빼주어서 배열에 넣어주었다. for (int i = 0; i > num; for (int j = 0; j < N; j++) { arr[i][j] = num[j] - '0'; } } 탐색은 dx, dy의 배열을 미리 만들어 주어서 for문을 돌아 탐색..

728x90
반응형