본문 바로가기

Unity/로직 설계

(5)
[Unity] 책 넘기는 효과 구현하기 (Page Curl) - 3 어찌어찌 완성은 했다만... 아직 부족한 점이 많다. 펀치 마스크를 활용하며 추가적인 마스크를 쓰지 못하게 된 점이때문에 Block 이미지로 앞을 가려줘야 하는 부분이라던지.DOTween과 Update의 충돌부자연스러운 그림자 위치맞물리지 않는 BackPage와 Mask의 관계등등. 하나씩 개선을 해보자.DOTween과 Update의 충돌DOTween으로 인한 이동과 Update에서의 계산 순서가 정해져 있지 않은지, 책 페이지를 넘길 때마다 BackPage가 잠깐 보이는 현상이나, 맨 윗 줄이 딱 맞물리지 않는 현상이 발생한다.  예를 들면 위 사진같은 상황이 발생한다. 이동한 것보다 더 돌아가서, 정확히는 덜 줄어들어서 위처럼 빈칸이 남아버린다. 이를 고치기 위해선 DOTween 대신 Coroutin..
[Unity] 책 넘기는 효과 구현하기 (Page Curl) - 2 지난 포스팅에선 위 부분까지 구현했었다.이제 음영을 넣어 자연스레 만들고, 페이지를 늘려 책 한 권을 완성시켜보자.페이지 늘리기원래 음영을 먼저 하는 게 자연스러운데, 까먹고 늘리는 걸 먼저 해버렸다. (이러면 나중에 음영을 일일이 추가해줘야 한다.) 먼저 프리팹화하고, 하이어라키 창에 여럿으로 늘렸다.  그리고 Blocker는 Book의 바깥쪽으로 빼줬는데, 이후 코드에서 Child를 가져올 때 섞이지 않게 하기 위함이다. 개념적으로도 이게 맞고.  그리고 동시에, Page 내 Back Pivot이 제어하던 이동 함수(MoveCorner)를 Book이 전부 관리하게 바꿨다. 굳이 왜 그랬냐면 MoveCorner 스크립트를 또 배열에 담는 게 낭비 같아서...   그렇게 코드는 아래처럼 변경되었다. us..
[Unity] 책 넘기는 효과 구현하기 (Page Curl) - 1 서론현재 개발 중인 게임의 튜토리얼로, 일기를 쓰듯 시작하려는 기획을 짜놨다. 이에 자연스레 책 페이지가 넘어가는 효과를 구현하려 인터넷을 찾는데... 찾기가 쉽지 않았다. 유니티 무료 에셋 중에도 이런 효과를 구현한 에셋들이 있었지만, 오픈소스 라이센스가 걸려 있어 판매까지 노리는 우리 팀의 프로젝트에 선뜻 쓸 순 없었다. 물론 우리도 코드는 공개할 목적이지만. 그래도 이왕이면 저작권 걱정 없는 효과를 구현해서 나도 쓰고, 남들도 편하게 쓰게 하려는 게 이번 포스팅과 개발의 목적이다.여기서 말하는 책 넘기기 효과란?신바람 김박사TV, "AET#21 에펙 책넘기는 효과(CC Page Turn)", YouTube, 2021. 7. 9., https://www.youtube.com/watch?v=VypbIL..
[Unity] InputAction 내 이벤트 초기화 InputAction 내의 이벤트들을 모두 지워야하는 상황이 있었다. InputAction 클래스의 메소드를 살펴보니, 다음과 같은 두 함수가 있었다. inputAction.Reset(); inputAction.RemoveAction(); 직접 실험해본 결과, inputAction.RemoveAction(); 함수는 해당 InputAction의 모든 Actions를 삭제하는 함수였다. inputAction.Reset(); 함수는 inputAction 내의 등록된 이벤트들을 깔끔하게 지워주는 함수였다. 씬이 넘어갈 때 오브젝트가 사라지더라도 등록된 Input 이벤트들은 그대로였다. 유지할 필요없다면 Reset() 함수로 지워주자.
[Unity] DOTween - 회전하지 않고 물체 주위 맴돌기 ※본 글에서는 유니티 에셋 스토어의 DOTween (HOTween v2) 무료 버전을 사용합니다. ※본 글에선 DOTween 에셋의 설치 및 사용법에 대해선 다루지 않습니다. 먼저, 스프라이트와 버튼 하나를 생성하겠습니다. 결과를 잘 보여주기 위해 버튼으로 했지만, 스프라이트나 다른 오브젝트로 만들어도 상관 없습니다. 하이어라키 창에서 우클릭 - Create Empty로 빈 오브젝트를 생성한 후, 이름을 Button Object로 바꿔줬습니다. 미리 생성해둔 버튼을 Button Object 아래에 넣어 자식 오브젝트로 만들어줍니다. ※자식 오브젝트로 넣기 전, 인스펙터 창에서 Button Object의 Transform 컴포넌트 조정해, 반드시 위치를 0, 0, 0으로 만들어줍니다. Button Obje..