-
06/14 유니티에서 node.js 서버를 통해 DB내용 출력하기개발일지/팀GC 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
'개발일지 > 팀GC' 카테고리의 다른 글
06/30 작업내용 (0) 2021.06.30 06/29 작업 내용 (0) 2021.06.29 06/09 카페24 node.js 서버 카카오 로그인 (0) 2021.06.13 06/07 ~ 06/11 작업 요약 (0) 2021.06.13 05/31 ~ 06/04 작업 요약 (0) 2021.06.06