質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1345閲覧

Unity⇔mongodb でデータ取得表示させたい。

harunasan

総合スコア125

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2017/11/28 02:04

Unity⇔mongodb でデータ取得表示させたいのですが
まずmongodb自体よく知らないのでmongodbで調べた結果。
node.js⇒mongodbでのやり取りがいいとのことなので、

ドットインストールNode.js入門 (全16回)
を学習しましてnode.js⇔mongodbの受け渡しはできました。

この時点で感覚的に以下のような実装になるのではないかと思っています。
違っていたらご教授お願い致します。
イメージ説明
次にUnity⇔node.jsを学習UnityでWebSocketを使用する
を参考に学習中ですがエラーが出てしまい詰まっています。

using UnityEngine; using System.Collections; using WebSocketSharp; using WebSocketSharp.Net; public class ClientExample: MonoBehaviour { WebSocket ws; void Start() { ws = new WebSocket("ws://localhost:3000/"); ws.OnOpen += (sender, e) => { Debug.Log("WebSocket Open"); }; ws.OnMessage += (sender, e) => { Debug.Log("WebSocket Message Type: " + e.Type + ", Data: " + e.Data); }; ws.OnError += (sender, e) => { Debug.Log("WebSocket Error Message: " + e.Message); }; ws.OnClose += (sender, e) => { Debug.Log("WebSocket Close"); }; ws.Connect(); } void Update() { if (Input.GetKeyUp("s")) { ws.Send("Test Message"); } } void OnDestroy() { ws.Close(); ws = null; } }

以下イメージ説明
の部分でエラーが出てしまいます。
websocketは入れています。
イメージ説明

エラー部分を消すと正常に動きます。
イメージ説明
とここまでできたのは良いのですがいまだに中心部分のUnity⇔nodo.js⇔mongo.dbの受け渡しがよくわかりません。

そもそも自分の学習の仕方が間違っているのでしょうか。
ご協力をお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「よくわかりません」ではどこが分からないかが分かりません。
質問する際には、もう少し具体的にしたほうがよいでしょう。
こちらが参考になると思います。
また、前の質問の私の回答の通り、UnityWebRequestクラスやWWWクラスでHTTP通信できるので、WebSocketを使わずに通信できると思いますが、わざわざWebSocketを使っている理由は何でしょうか?

その上で回答しますが、図に「C#(サーバーサイド)」と書かれていますが、サーバーサイドとは今回の内容でいうところの「Node.js+MongoDB」に当たるため、今回の場合ではこれに該当する箇所は不要です。
参考になされたサイトには、Unityのサーバーサイドの例も書かれていますが、これはUnity同士の通信を想定されたものだと思います。
今回の場合は、「① クライアント (Unity)」と「(補足) サーバーサイド (Node.js)」の部分だけ実装すればよいでしょう。

もし、「② サーバーサイド (Unity)」を実装しているのであれば、"ws://localhost:3000/"=「② サーバーサイド (Unity)」となり、「① クライアント (Unity)」⇔「② サーバーサイド (Unity)」の間で通信している可能性が高いです。
Unity⇔Node.js間の通信が出来ているのか確認してみてください。

また、e.Typeでエラーが出る件ですが、それについてはバージョンアップの際に削除されたようなので、単にe.Typeが使えないだけだと思います。

投稿2017/11/29 04:47

fiveHundred

総合スコア9796

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問