ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.