/MySQL-Apache-UnrealEngine

Connect to MySQL DB and Apache server in UE4

UE4 - MySQL DB - Apache 연동

서버/DB 전체 시스템 설계 구조

image

설치 버전

Apache2.4.53, PHP8, MySQL8.0

UE-Apache-DB 연동 과정

Rest Server통신을 지원하는 Va Rest Subsystem을 사용하여 UE4에서 서버로 get/post 방식의 http request를 한다.
php파일에서 mysqli 쿼리로 DB 연결 및 데이터를 가져오고, Json타입으로 처리하여 UE에 데이터를 반환한다.

코드 실행방법

  1. Apache, MySQL, PHP 를 설치한다.
  2. UnrealEngine내에서 웹서버와 통신 가능하게 하는 VaRest Plugin을 설치한다.(UE 마켓플레이스)
  3. Apache설치 파일의 htdocs 파일에 php코드(파일)를 저장후, php파일의 데이터베이스 연결 정보를 변경한다.(개인의 user,password,db)
  4. UE4 이벤트 그래프에 Blueprint코드를 복사하고 필요한 변수,이벤트를 생성한다.

블루프린트 코드

웹서버 요청 블루프린트 1
웹서버 요청 블루프린트 2

MySQL DB

  1. DB Tables
    image
    image

  2. Table 스키마

  • playerdb: 사용자 정보
    image
  • playersandwich : 사용자 레시피 정보
    image

PHP 구현 기능

  1. 사용자 가입기능, 로그인 기능
    - 사용자 정보(데이터) 저장 : insertPlayerInfo.php
    - 사용자 정보 조회 : selectPlayerInfo.php
  2. 관심메뉴 기능
    - 주문한 레시피 저장(수정): insertPlayerMenu.php
    - 등록한 레시피 조회 : selectPlayerMenu.php

웹서버 요청 블루프린트

사용자 정보 조회

Call URL 함수를 사용해 get방식으로 request
FindPlayer Event: 사용자 닉네임으로 DB에 정보가 있는지 조회
image

사용자 데이터 저장

AddPlayer Event: 위의 사용자 정보 조회한 후, DB에 사용자 등록(저장) 요청
image

주문한 레시피 저장(또는 수정)

post방식을 사용하고, 데이터를 json타입으로 설정
image

AddPlayerMenu Event: 사용자 이름과 사용자가 주문한 레시피(Recipe obj)를 Request 변수에 설정 후, Process URL 실행하여 레시피 저장 요청
image image

등록한 레시피 조회

FindPlayerMenu Event: 사용자 닉네임으로 Call URL 함수를 실행하여 저장된 레시피 조회하고, 가져온 데이터(레시피)를 UE 사용을 위한 배열 변수에 저장
image image image