개발일지/팀GC
06/14 유니티에서 node.js 서버를 통해 DB내용 출력하기
박준희
2021. 6. 14. 16:25
유니티에서 node.js 서버를 통해 DB내용 출력하기
1. DB데이터 저장
2. node.js 서버 실행
서버 코드
web.js
const express = require('express')
const db_config = require(__dirname + '/config/database.js');
const conn = db_config.init();
var app = express()
app.use(express.json())
app.get('/newslist', (req, res) => {
conn.query('SELECT * FROM `news`', function (error, results, fields) {
if (error) throw error;
console.log(results);
res.json(results);
res.end();
});
})
//포트설정
app.listen(8002, () => {
console.log('> server start! ')
})
config/database.js
let mysql = require('mysql');
let db_info = {
host : '127.0.0.1',//db주소
port : '3306',
user : '',//db유저
password : '',//db암호
database : ''//db이름
}
module.exports = {
init: function () {
return mysql.createConnection(db_info);
},
connect: function (conn) {
conn.connect(function(err) {
if(err) console.error('mysql connection error : ' + err);
else console.log('mysql is connected successfully!');
});
}
}
3. 유니티에서 프로젝트 실행
유니티 코드
using Newtonsoft.Json;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
public class Statistics : MonoBehaviour
{
public RawImage testImage;
public Text title;
public Text contents;
private string jsonText;
// Start is called before the first frame update
void Start()
{
StartCoroutine(GetRequest("http://localhost:8002/newslist"));
}
// Update is called once per frame
void Update()
{
}
IEnumerator CoLoadImageTexture(string url)
{
UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
testImage.texture = ((DownloadHandlerTexture)www.downloadHandler).texture;
}
}
IEnumerator GetRequest(string uri)
{
using (UnityWebRequest webRequest = UnityWebRequest.Get(uri))
{
// Request and wait for the desired page.
yield return webRequest.SendWebRequest();
string[] pages = uri.Split('/');
int page = pages.Length - 1;
switch (webRequest.result)
{
case UnityWebRequest.Result.ConnectionError:
case UnityWebRequest.Result.DataProcessingError:
Debug.LogError(pages[page] + ": Error: " + webRequest.error);
break;
case UnityWebRequest.Result.ProtocolError:
Debug.LogError(pages[page] + ": HTTP Error: " + webRequest.error);
break;
case UnityWebRequest.Result.Success:
Debug.Log(pages[page] + ":\nReceived: " + webRequest.downloadHandler.text);
jsonText = webRequest.downloadHandler.text;
NewsListData[] newsListDatas = JsonConvert.DeserializeObject<NewsListData[]>(jsonText);
StartCoroutine(CoLoadImageTexture(newsListDatas[0].img_url));
title.text = newsListDatas[0].title;
contents.text = newsListDatas[0].contents;
break;
}
}
}
}
참고
http://makingappfor.blogspot.com/2019/12/unity-url.html
[Unity] 웹 url에서 이미지를 가져와 출력하기
유니티에서 웹 상의 이미지를 가져다 출력하고 싶다면 public RawImage testImage; Image 가 아닌 RawImage를 사용한다. IEnumerator CoLoadImageTexture(string url) { U...
makingappfor.blogspot.com