튜토리얼

5

분 소요

컴포넌트를 사용하여 기능하는 별점 만들기

이 레슨에서는 컴포넌트와 변수를 사용해 프로토타입용 별점 패널을 만드는 방법을 배웁니다.

Tianyang Wang, Design Student @ Monash University

소개

별점은 일반적으로 사용자가 앱 콘텐츠와 어떻게 상호작용하는지에 대한 관련 피드백을 얻기 위해 사용됩니다. 앱을 위한 시각적인 리뷰 역할을 하죠. 하지만 별점 기능을 구현하는 일은 꽤 번거로울 수 있습니다. 여러 가지 방법이 있지만, 일부 방식은 직접 작업하기에 매우 지루할 수 있습니다. ProtoPie를 사용하면 별다른 어려움 없이 몇 분 만에 별점 기능을 만들 수 있습니다. 이 튜토리얼에서는 컴포넌트, 변수, 그리고 send & receive를 사용해 이 효과를 구현하는 방법을 다룹니다.

배울 내용

  1. 각 컴포넌트 인스턴스에 고유한 번호를 부여해 고유 식별자를 설정하기

  2. 고유 식별자를 사용해 탭했을 때 현재 별과 이전 별을 밝게 표시하기

마지막에는 이런 것을 만들 수 있게 됩니다!


Star Rating Prototype Made With ProtoPie

[시작 Pie 파일] [완성된 Pie 파일]

단계별 안내

각 컴포넌트 인스턴스에 고유한 번호를 부여해 고유 식별자를 설정하기

1. "Star" 컴포넌트를 엽니다.

별 컴포넌트를 만든 후, 작업 중인 씬에 5개의 인스턴스를 만드세요. 완료되면 메인 Star 컴포넌트를 엽니다.

💡왜 컴포넌트를 사용하나요?

비슷한 동작을 하는 오브젝트가 있을 때 컴포넌트를 사용합니다. 이 경우 5개의 별은 모두 비슷한 동작을 합니다. 컴포넌트를 사용하면 인터랙티브 오브젝트에 트리거/응답을 반복해서 추가하는 번거롭고 지루한 작업도 줄일 수 있습니다.

2. "Star" 컴포넌트에 "number" 변수를 추가합니다.

다음 단계는 Star 컴포넌트에 number 변수를 추가하는 것입니다. 이 변수에 대해 Make Overridable 옵션이 체크되어 있는지 확인합니다. 이렇게 하는 이유는 개별 Star 하위 인스턴스에 고유 식별자를 설정할 수 있게 하기 위해서입니다.


Add a "number" variable for the "Star" component.

💡 Make Overridable이란?

Make overridable은 컴포넌트의 각 인스턴스가 변수에 대해 서로 다른 초기값을 가질 수 있다는 뜻입니다. 여기서는 각 하위 컴포넌트에 고유 식별자를 설정하는 데 사용합니다.

Make Overridable 옵션을 체크한 뒤, 메인 작업 씬으로 돌아가 개별 Star 하위 인스턴스의 번호를 (1 to 5) 순서대로 변경합니다. 이렇게 하면 각 Star 하위 인스턴스에 고유 식별자가 설정됩니다.


Change the individual Star child instance numbers from (1 to 5)

고유 식별자를 사용해 탭했을 때 현재 별과 이전 별을 밝게 표시하기

1. "Star" 컴포넌트에 Tap 트리거와 Send 응답을 추가합니다.

 a. 이제 메인 Star 컴포넌트로 돌아갑니다. 별을 탭했을 때 특정 응답이 나오도록 하려 합니다. 따라서 Tap 트리거를 추가합니다. Tap trigger 아래에 Send response를 추가합니다.


Under the Tap trigger, add a Send response.

 b. 응답 아래의 메시지를 "tapped"로 설정합니다. 이는 별 인스턴스가 탭되었음을 나타냅니다. Send Value Together 옵션을 체크하고 값을 "number" 변수로 설정합니다. 이렇게 하면 탭된 Star 하위 인스턴스의 number가 저장됩니다.


Tick the Send Value Together option and set the value as the "number" variable

💡 메시지는 어디로 전송되나요?

메시지는 탭된 Star 인스턴스를 포함하여 메인 씬의 모든 "Star" 인스턴스로 전송됩니다.

2. Star 컴포넌트에 Receive 트리거를 추가하고 "tapped_number"라는 변수를 하나 더 만듭니다.

 a. Send 응답을 설정한 후에는 탭된 Star 인스턴스로부터 응답을 받아야 합니다. 먼저 변수를 만들고 이름을 "tapped_number"로 지정해 봅시다.


Create a variable first and name it "tapped_number"

 b. Receive 트리거를 추가하고 메시지를 "tapped"로 설정한 뒤, Assign to Variable 옵션을 체크합니다. 할당할 변수로 tapped_number를 선택합니다. 그러면 메인 씬에서 탭된 Star 인스턴스의 번호 값이 반환됩니다.


Add a Receive trigger and set the message as "tapped"

3. 탭했을 때 현재 별과 이전 별을 밝게 표시하기.

 a. Receive 트리거 아래에 조건을 추가합니다. 조건은 number ≤ tapped_number로 설정합니다. 조건 아래에는 Vector 레이어에 Color 응답을 추가합니다. 색상 응답의 Fill을 #FDC97D로 설정합니다(색상은 프로토타입에 따라 달라질 수 있습니다). 이렇게 하면 탭된 Star 인스턴스 이전의 "Star" 인스턴스들이 색상을 변경하게 됩니다.


Set the condition as number ≤ tapped_number

 b. Receive 트리거 아래에 또 다른 조건을 추가합니다. 조건은 number > tapped_number로 설정합니다. Vector 레이어에 Reset 응답을 추가합니다. 이렇게 하면 탭된 Star 인스턴스 이후의 "Star" 인스턴스들은 색상이 변경되지 않도록 할 수 있습니다.


Set the condition as number > tapped_number

💡 어떻게 작동하나요?

Star 인스턴스를 탭하면, 해당 Star 인스턴스가 다른 Star 인스턴스들에게 빛나야 하는지 여부를 업데이트하라는 메시지를 전송합니다.

축하합니다!

단계를 끝까지 따라오느라 수고하셨습니다. 꽤 간단하고 직관적이죠? ProtoPie로 별점 만들기는 식은 죽 먹기입니다. 직접 한 번 시도해 보세요.

[도움이 되었나요? 알려 주세요!]