Unity/Metaverse Store

[Metaverse Store] 설명 및 기능 정리 3 (결제 시스템)

으얏 2022. 12. 27. 00:07

1편 : https://stotop.tistory.com/8

 

[Metaverse Store] 설명 및 기능 정리 1

VR을 이용한 Metaverse Store를 만들었습니다. 저의 노션에서 간단한 기획서 및 기능도를 보실 수 있습니다. https://www.notion.so/stotop/Metaverse-Smart-Store-22d8a4d8745b42229349b9b22fbc5b80 완성 및 G-Star 참여 영상입

stotop.tistory.com

2편 : https://stotop.tistory.com/9

 

[Metaverse Store] 설명 및 기능 정리 2

2. Sever Scene 2 - 1 전체보기. Intro 씬에서 회원가입 및 로그인을 완료하면 오게 되는 두번째 씬 입니다. 상점과 광안리 밤바다를 구경할 수 있게 꾸몄습니다. 2 - 2 방 생성 및 입장. LobbyCount.cs 입니다

stotop.tistory.com

 

3. 각 씬에 공통적으로 있는 결제 시스템부터 시작하겠습니다.

어려웠던 점과 해결방법: 

1. Check Out이라는 유료 Asset을 부분 수정하여 PayPal과 연동하여 구매하는 방식과 구글 IAP를 이용하여 구매하는 방식 두 가지가 있었습니다. 

- Meta Oculus에서는 자체 스토어에 DLC로 등록을 해야만 제품을 구매 할 수 있는 방식을 채택하고 있습니다. 그래서 두 가지를 다 구현했음에도 불구하고 VR을 착용한 상태에서는 제품 구매를 할 수 없었습니다. 윈도우버전이나 모바일 버전에서는 둘 다 구현이 가능했습니다. 후에 Oculus Store에 출시하게 되면 DLC로 판매하는 방식을 고려해야합니다.

 

3 - 1. Unity에서 사용 할 수 있는 구글 IAP 입니다.

 

시작 전 Unity Doc 공식 IAP에 대한 설명입니다.

https://docs.unity3d.com/kr/2021.3/Manual/UnityIAPSettingUp.html

 

Unity IAP 설정 - Unity 매뉴얼

참고: 스크린샷과 메뉴 선택 항목은 릴리스 버전에 따라 다를 수 있습니다.

docs.unity3d.com

 

먼저 Unity에서 사용할 수 있는 구글 IAP(In-App Purchasing)부터 보여드리겠습니다.

Edit > Project Settings > Services > In-App Purchasing에 들어가셔서 OFF가 되어있는 IAP를 ON으로 설정합니다.

다른방법으로는 Window > General > Services 혹은 Ctrl + 0(숫자)의 방법도 있습니다. 

Purchasing Package를 최신버전으로 업데이트를 합니다.

수익을 창출하기 위해서는 구글 콘솔 개발자 계정을 미리 필요로 합니다.

Google Play Console > 수익 창출 > 수익 창출 설정 부분에 들어가셔서 라이선스 키를 복사합니다.

복사한 키를 IAP Setting의 Options에 붙여넣기를 하신 후 업데이트를 누르면 자신의 계정이 등록되게 됩니다.

 

혹시 오류가 뜨게 된다면 최초 라이센스를 등록하지 않으셔서 발생하는 오류일 가능성이 많습니다.

Project Settings > Services > Analytics에 Go to Dashboard에 들어갑니다.

그 후 Unity Gaming Services 창이 뜨게 되는데 현재 프로젝트 진행중인 곳에 위와 동일한IAP 구글 라이센스 키를 복사 붙여넣기 해줍니다.

완료가 되면 하이어라키창 우측 클릭시 In-App Purchasing 메뉴가 생기며 IAP Button, Listener을 만들 수 있습니다.

 

Button을 생성하고 IAP Button에서 구글 개발자 계정에서 등록한 상품 정보들을 등록 판매 할 수 있습니다.

 

3 - 2. Check Out Asset을 부분수정하여 XR에도 적용가능하게 하였습니다.

https://assetstore.unity.com/packages/tools/integration/net-checkout-176354

 

Net Checkout | 기능 통합 | Unity Asset Store

Use the Net Checkout from Semantic Games LLC on your next project. Find this integration tool & more on the Unity Asset Store.

assetstore.unity.com

유료에셋이기 때문에 스크립트 전체공개는 하지 않고 제가 추가한 부분만 보여드리겠습니다.

XR 관련 이벤트를 추가시켜서 VR로도 상호작용이 가능하게 하였습니다.

시계전시장과 자동차전시장에 전시된 물품을 클릭할시 UI 창이 나타나며 구매하기 버튼을 누르면 Pay Pal 인터넷브라우저가 실행되면서 미리 등록한 카드로 결제를 진행할 수 있게 되어있습니다.

 

 [SerializeField]
    XRSimpleInteractable interactable;

    void Start()
    {
        originalPosition = transform.position;

        interactable.hoverEntered.AddListener(Enter);
        interactable.hoverExited.AddListener(Exit);
        interactable.selectEntered.AddListener(Click);
    }
    
     private void Enter(HoverEnterEventArgs arg)
    {
        Vector3 dir = Camera.main.transform.position - transform.position;
        transform.position += dir.normalized * 1.3f;
    }

    private void Exit(HoverExitEventArgs arg)
    {
        transform.position = originalPosition;
    }

    private void Click(SelectEnterEventArgs arg)
    {
        if (EventSystem.current.IsPointerOverGameObject())
            return;
        Debug.Log("1");

        if (locked)
        {
            Buy();
            Debug.Log("2");
        }

        else 
        { 
            Select(); 
        }
    }