본문 바로가기

분류 전체보기

(333)
[유니티셰이더]유니티 Surface Shader 작성 메뉴얼 유니티의 Surface Shader는 조명과 상호작용하는 셰이더를 쉽게 만들어주는 코드 생성 방법입니다. 기능이 제한되어 있는 단점을 가지고 있지만 쉽게 셰이더를 제작할 수 있죠. 오늘은 휴일 첫날을 기념하여 유니티 메뉴얼을 살펴보며 이에 대한 내용을 정리해보도록 하겠습니다. 작동 방식 -필요로 하는 UV 또는 데이터를 입력으로 받는 '표면 함수'를 정의한다. -이 함수에 사용할 출력 구조를 결정한다. (구조 : SurfaceOutput, SurfaceOutputStandard, SurfaceOutputStandardSpecular) -SubShader 블록 안에 CGPROGRAM .. ENDCG에 셰이더 코드를 위치시킨다. -#pragma surface ... 지시자를 사용하여 Surface Shade..
[유니티셰이더]불 이펙트 업그레이드 대마왕님의 책 '유니티 쉐이더 스타트업'의 6부에서 나오는 불 예제를 후반부에 나오는 내용을 이용하여 업그레이드시켜본 소스입니다. 불을 표현하기 위한 이미지는 예제파일에 있는 불과 먼지를 그대로 이용하였고, 코드만 수정하여서 배경이미지와 함께 사용할 수 있는 불을 만들어 보았습니다. ​ 6부에서 제작한 불 이미지를 그대로 사용하면 문제점이 1. 배경에 불 이미지가 적용된 Plane의 '진한 사각형 그림자'가 나타난다. -> 전혀 불의 그림자라고 생각할 수 없는 이질적인 그림자가 생성됩니다. 2. 불이 왼쪽아래로 치우쳐져서 그려진다 3. 불의 위아래에 연산으로 인한 찌거기가 남는다 4. 불치고 너무 진하다(?) 이렇게 배경이미지와 6부의 불 이펙트를 함께 사용하면 정말 보기 이상한 현상들이 나타납니다. 이..
[유니티셰이더]홀로그램 + VCMask 유니티 쉐이더 스타트업 책을 읽다가 나온 홀로그램 코드에 저번 시간에 배운 내용들을 집어넣어, VCMask를 이용한 무지개빛(?)홀로그램을 만들었습니다. 책에 설명을 너무 쉽게 잘해주셔가지고 조금만 자세히 읽다보면 다양한 바리에이션으로 응용이 가능할거에요! ​ 왼쪽 위 홀로그램은 기본 홀로그램 코드에 NormalMap과 Sin(시간)함수를 더한것입니다! 보시면 구형 오브젝트에 바둑판모양에 숫자들이 적힌(피면 오른쪽 오브젝트처럼되는)이미지에다가 아래에서 위로 올라가는 가로방향 줄모양으로 홀로그램이 만들어지고 있죠. ​ 오른쪽 위 홀로그램은 평면 오브젝트에 VC마스크를 이용하여 다양한 색깔을 첨가한 결과물입니다. 마찬가지로 위로 올라가는 가로방향 줄무늬를 볼 수 있고, 시간흐름에 따라 색상이 바뀌는것도 포인..
유니티 넷플릭스 스타일UI - ScrollrectEx 응용 유니티를 이용한 프로젝트에서 화면의 크기보다 많은 공간을 필요로 하는 콘텐츠를 만들 때가 있다. 이럴때 주로 Scrollrect UI를 이용하여 페이지를 넘기며 정보를 확인할 수 있게 구성한다. 그 대표적인 예로 넷플릭스가 있는데, 넷플릭스는 스크롤을 위, 아래로 내리면서 콘텐츠가 담긴 그룹들을 선택할 수 있고, 해당 그룹에서 좌,우로 스크롤하면서 그 그룹에 속한 콘텐츠들을 확인하고 선택할 수 있다. ​ 하지만 유니티에서 기본적으로 제공하는 Scrollrect UI를 이용하면 넷플릭스와 같은 UI를 구현할 수가 없다. 기본적으로 마우스에서 발생하는 이벤트는 캔버스에서 가장 위에있는 오브젝트가 독차지하기 때문이다. 즉, 부모 오브젝트가 상하로 스크롤 가능하게 설정되었고, 그 안에 있는 자식 오브젝트가 좌우..
유니티 특정 시간동안 조건을 유지할 경우 특정 시간동안 조건을 유지할 경우 특정 시간동안 값이 변하지 않을 경우 ​ 원하는 함수를 실행하게 하는 코드를 작성해보았다. 이번에도 Rx프로그래밍인 UniRx를 기반으로 제작해보았다. 각 함수들에 대한 자세한 설명은 글 하단 참조하기! ​ 예제 -'조건'이 'false에서 true'가 되고 '2'초 후 계속 'true'일 경우 '함수'를 실행 '조건' -> Select 'false에서 true' -> DistinctUntilChanged '2' -> Throttle // Delay 쓰면 안됨!!! 'true' -> Where 함수 -> 'Subscribe' // User Detect Stream this.UpdateAsObservable() .Select(_ => 조건) .DistinctUntilCha..
[유니티] npc와 대화하기 UniRX UniRX를 공부한 김에 이를 이용한 npc와 대화 로직을 만들었습니다. 유니티 RPG게임이나 추리게임에서 유용하게 사용할 수 있는 코드입니다. 프로그램은 다음과 같이 구성하였습니다. ​ 1. NPC 가까이 가면 대화할 수 있음 ( InAreaNPC 메서드 ) 2. 스페이스바를 누르면 대화창이 뜨고 대화 시작 3. 대화문장은 한글자씩 천천히 출력됨 4. 만약 이를 기다리기 싫다면 스페이스바를 한번 더 눌려서 전체 문장을 한번에 볼 수 있음 5. 해당 문장을 보기 싫다면 스페이스바를 더블클릭하여 다음 대화로 스킵가능 6. 대화가 끝나거나 대화도중 npc영역에서 벗어나면 대화 끝 7. 대화가 끝나면 무조건 대화는 처음부터 시작 ​ 게임을 좋아하시는 분들이라면 익숙한 동작이시죠? 이를 구현하면 다음과 같습니다..
백준 알고리즘 파이썬(pypy3) 2020년 11월 2주차 1문제 1포스팅하기엔 글을 너무 많이쓰는거같아서 이렇게 묶어서 처리하도록 하겠습니다. 이번에는 인하대 알고리즘 콘테스트 문제, 다이나믹 프로그래밍 문제를 위주로 공부해보았습니다. 자세한 코드는 아래 깃허브 참조해주세요 백준 17263 - Sort 마스터 배지훈 백준 17266 - 어두운 굴다리 백준 17265 - 나의 인생에는 수학과 함께 백준 2908 - 상수 백준 10953 - A+B - 6 백준 15740 - A+B - 9 백준 10757 - 큰 수 A+B 백준 17273 - 카드공장(Small) 백준 10872 - 팩토리얼 백준 2446 - 별 찍기 - 9 백준 2442 - 별 찍기 - 5 백준 17726 - 2xn 타일링 백준 11727 - 2xn 타일링2 백준 11718 - 그대로 출력하기 백..
백준 알고리즘 파이썬(pypy3) 2020년 11월 1주차 1문제 1포스팅하기엔 글을 너무 많이쓰는거같아서 이렇게 묶어서 처리하도록 하겠습니다. 자세한 코드는 아래 깃허브 참조해주세요 백준 2839 - 설탕 배달, greedy 백준 11399 - ATM, greddy 백준 1152 - 단어의 개수, imple 백준 2750 - 수 정렬하기, imple 백준 2675 - 문자열 반복, imple eugene-doobu/eugene-baekjoon algorithm study. Contribute to eugene-doobu/eugene-baekjoon development by creating an account on GitHub. github.com