유니티 (39) 썸네일형 리스트형 [유니티셰이더]불 이펙트 업그레이드 대마왕님의 책 '유니티 쉐이더 스타트업'의 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. 대화가 끝나면 무조건 대화는 처음부터 시작 게임을 좋아하시는 분들이라면 익숙한 동작이시죠? 이를 구현하면 다음과 같습니다.. [유니티]공 이동거리 계산 프로그램 평지가 아닌 상황에서 공의 이동거리를 계산하는 프로그램을 제작하였습니다. 각도나 길이가 다른 5개의 판을 설치하고, 그 꼭대기에서 공을 굴러서 바닥에 닿는 순간 지금까지 공이 회전한 각도를 계산하여 공의 이동거리를 계산하는 프로그램입니다. 공의 지름은 1m로 설정했기에, 1바퀴 회전당 pi m씩 이동하도록 설정하였습니다. 환경 정보 중력가속도 : -9.81 m / s2 오브젝트 정보 ( 단위- 길이 : m, 각도 : 오일러 ) 공 : 반지름 0.5 1번 판 - 길이 : 30, 각도 : 23 2번 판 - 길이 : 20, 각도 : 20 3번 판 - 길이 : 20, 각도 : 23 4번 판 - 길이 : 10, 각도 : 20 5번 판 - 길이 : 20, 각도 : 꼭대기에서 중간까지 23, 중간에서 .. [유니티]오브젝트 순차적 색상변경 예제를 적용한 큐브들입니다. 아래 스크립트 적용시 'Z'키를 누르면 지정한 색깔 순서대로 오른쪽의 작은 큐브부터 색상이 변하게 됩니다. 해당 큐브 그룹의 계층창과 인스펙터창입니다. 이렇게 4개의 큐브를 하나의 게임오브젝트의 자식으로 설정하고, 부모오브젝트에 스크립트를 적용하였습니다. 소스코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_CubeStream : MonoBehaviour { List MyColors = new List(); Dictionary MyCubes = new Dictionary(); //큐브들 int numberOfCube = 0; void Star.. 이전 1 2 3 4 5 다음