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

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

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

UWPは、Universal Windows Platformの略。様々なデバイス向けに提供されているアプリケーションを共通のフレームワーク上で動作可能にする仕組みで、Windows10で導入されました。

Microsoft HoloLens

Microsoft HoloLensは、マイクロソフト社が開発しているヘッドマウントディスプレイ方式のコンピュータです。拡張現実体験のため透明なレンズを備えています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

Q&A

解決済

1回答

1136閲覧

Hololens2と他のアプリケーション間の通信の開通(UWPとJava間)

aaaddd

総合スコア22

UWP

UWPは、Universal Windows Platformの略。様々なデバイス向けに提供されているアプリケーションを共通のフレームワーク上で動作可能にする仕組みで、Windows10で導入されました。

Microsoft HoloLens

Microsoft HoloLensは、マイクロソフト社が開発しているヘッドマウントディスプレイ方式のコンピュータです。拡張現実体験のため透明なレンズを備えています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

0グッド

0クリップ

投稿2022/06/30 18:12

前提

Hololens2を用いてほかのアプリケーション(今回はRTミドルウェア)とHololens2を通信をしたいと考えています。
そこで、Hololens2はUWP変換されるため、
#if Unity_UWP
#endif
を用いて、Unity部分とUWP部分を分けて書こうと考えました。しかし、この分け方が自分の調べたところ、Visual Studioの構成マネージャーがx86で使用可能であるが、Hololens2は構成マネージャーがARM64でしか対応できないため、切り分けがうまくできず通信ができていません。そのため、Hololens2とほかのアプリケーションとの通信で何か方法(UDP通信,TCP通信など)があればご教授いただきたいです。

実現したいこと

[1]. Hololensとほかのアプリケーションの通信

発生している問題・エラーメッセージ

構成マネージャーが異なってることから、UWPとUnity部分の切り分けができずうまく通信ができていない。

該当のソースコード

C#

1using System; 2using System.IO; 3using System.Threading.Tasks; 4#if Windows_UWP 5using Windows.Networking; 6using Windows.Networking.Sockets; 7#endif 8using UnityEngine; 9 10public class TcpNetworkClientManager1 : MonoBehaviour 11{ 12 13 public GameObject ball; 14 public GameObject cube; 15 16#if Windows_UWP 17 private StreamWriter writer = null; 18#endif 19 20 public void TcpNetworkClientManager2(string IP, int port) 21 { 22 cube.SetActive(false); 23#if Windows_UWP 24 Task.Run(async () => { 25 StreamSocket socket = new StreamSocket(); 26 await socket.ConnectAsync(new HostName(IP),port.ToString()); 27 writer = new StreamWriter(socket.OutputStream.AsStreamForWrite()); 28 StreamReader reader = new StreamReader(socket.InputStream.AsStreamForRead()); 29 try 30 { 31 string data = await reader.ReadToEndAsync(); 32 } 33 catch (Exception) { } 34 writer = null; 35 }); 36 ball.SetActive(false); 37#endif 38 } 39 40 public void SendMessage(string data) 41 { 42#if Windows_UWP 43 if (writer != null) Task.Run(async () => 44 { 45 await writer.WriteAsync(data); 46 await writer.FlushAsync(); 47 }); 48#endif 49 } 50 // // Start is called before the first frame update 51 // void Start() 52 // { 53 54 // } 55 56 // // Update is called once per frame 57 // void Update() 58 // { 59 60 // } 61} 62

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class TCPIP : MonoBehaviour 6{ 7 8 string IP = "127.0.0.1"; 9 int port = 3333; 10 11 // TcpNetworkClientManager1 client = new TcpNetworkClientManager1(); 12 13 //public GameObject box; 14 TcpNetworkClientManager1 tcp_uwp; 15 16 17 // Start is called before the first frame update 18 void Start() 19 { 20 tcp_uwp = this.GetComponent<TcpNetworkClientManager1>(); 21 tcp_uwp.TcpNetworkClientManager2(IP, port); 22 Debug.Log("Connected"); 23 // client.TcpNetworkClientManager2(IP, port); 24 } 25 26 // Update is called once per frame 27 void Update() 28 { 29 30 } 31} 32

試したこと

cube.SetActive(false);でオブジェクトの非表示を行って、メソッド内に入ることは確認したのだが、#if Windows_UWP~#endif間には入らずに終わってることは確認したため、この切り分け方法に問題があると考えた。

補足情報(FW/ツールのバージョンなど)

同一PC間の通信です。
Unity2020.3.30f1
Visual Studio 2019

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

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

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

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

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

guest

回答1

0

自己解決

通信をすることができました

投稿2022/07/20 02:05

aaaddd

総合スコア22

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問