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

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

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

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

Unity

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

Q&A

解決済

1回答

1931閲覧

unityでコンソールデータをテキストに表示したい

UKAWATAKATO

総合スコア14

C#

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

Unity

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

0グッド

0クリップ

投稿2018/08/31 04:24

このコードは
unityのこのボタンを押すとアタッチしたテキストに文字を表示できるものです
今回はChangeTextと表示させていますが
UDP通信をしたコードを下にのせておきます
そのときの受信パケットのデータ、コンソールをテキストに表示したい
using UnityEngine;
using System.Collections;
using UnityEngine.UI; // <---- 追加1

public class text3 : MonoBehaviour
{
private Text targetText; // <---- 追加2
GameObject _Object;

public void hoge() { _Object = GameObject.Find("Text"); this.targetText = _Object.GetComponent<Text>(); // <---- 追加3 this.targetText.text = "ChangeText"; // <---- 追加4 }

}

こちらが通信を開始して 受信パケットのデータ コンソール10810001.... が出力されます そのコンソールを上記のソースから 画面のテキストに表示したい ```using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Net; using System.Net.Sockets; using System.Threading; public class UdpSocket : MonoBehaviour { private string _MulticastAddr = "224.0.23.0"; // マルチキャストアドレス private string _RemoteHost = ""; // 送信相手アドレス private int _SendPort = 3610; // 送信ポート private int _RecvPort = 3610; // 受信ポート private UdpClient _UdpClient; // UDP private IPEndPoint _IpEndPoint; // IPEndPoint private Thread _RecvThread; // 受信スレッド // 接続 public void Connect() { IPAddress grpAddr = IPAddress.Parse(_MulticastAddr); if (_IpEndPoint != null) _IpEndPoint = null; _IpEndPoint = new IPEndPoint(grpAddr, _RecvPort); // マルチキャストグループに参加 Disconnect(); _UdpClient = new UdpClient(_RecvPort); _UdpClient.JoinMulticastGroup(grpAddr); // 受信スレッド生成 _RecvThread = new Thread(ReceiveMulticastThread); _RecvThread.Start(); // ノードプロファイル通知送信 SendNodeProfile(); } // 切断 public void Disconnect() { if (_RecvThread != null) { _RecvThread.Abort(); _RecvThread = null; } if (_UdpClient != null) { IPAddress grpAddr = IPAddress.Parse(_MulticastAddr); _UdpClient.DropMulticastGroup(grpAddr); _UdpClient.Close(); _UdpClient = null; } } // ノードプロファイル通知送信 public void SendNodeProfile() { byte[] pack = BuildNodeProfileInfo(); SendPacket(pack, _MulticastAddr); } // 送信 public void SendPacket(byte[] packet, string host) { _UdpClient.Send(packet, packet.Length, host, _SendPort); } // 受信スレッド public void ReceiveMulticastThread() { byte[] packet; int i = 0; System.Text. StringBuilder s = new System.Text.StringBuilder(); while (true) { packet = _UdpClient.Receive(ref _IpEndPoint); if (packet != null) { // 受信できた! s.Remove(0, s.Length); for (i = 0; i < packet.Length; i++) { s.Append(System.Convert.ToString(packet[i], 16).PadLeft(2, '0')); } Debug.Log(s.ToString()); } } } // ノードプロファイル通知パケット作成 private byte[] BuildNodeProfileInfo() { byte[] pack; pack = new byte[17]; pack[0] = 0x10; // EHD1 pack[1] = 0x81; // EHD2 pack[2] = 0x00; // pack[3] = 0x01; // ID pack[4] = 0x0E; // 送信元「ノードプロファイルクラス」 pack[5] = 0xF0; // EOJ = 0x0E F0 01 pack[6] = 0x01; // pack[7] = 0x0E; // 送信先「ノードプロファイルクラス」 pack[8] = 0xF0; // EOJ = 0x0E F0 01 pack[9] = 0x01; // pack[10] = 0x73; // ESV pack[11] = 0x01; // OPC pack[12] = 0xD5; // EPC pack[13] = 0x04; // PDC pack[14] = 0x01; // EDT pack[15] = 0x05; // pack[16] = 0xFF; // pack[16] = 0x01; // return pack; } } コード

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

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

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

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

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

sakura_hana

2018/08/31 04:48 編集

結局何が疑問なのでしょうか? スクリプトから別のスクリプトの変数等を操作したいなら「unity 別のスクリプト」で検索すると情報がたくさん出ますが…… また、コードエリアが崩れているのでプレビューを見ながら正しく「```」で括ってください。
UKAWATAKATO

2018/08/31 05:58

返信ありがとうございます まずプレビューを見てみます。本当にプログラムの右も左も分からないような初心者なので検索したのですが理解ができませんでした、、、
sakura_hana

2018/08/31 06:58

https://teratail.com/help/question-tips こちらの「2. 質問をする前に自分で何がわからないのかを把握しましょう」の項をご覧ください。どんなサイト・コードを見て、どこまでが分かり、どこから分からないのか提示してもらえないと回答しても二度手間になったり余計な情報になってしまうかもしれません。
UKAWATAKATO

2018/08/31 09:16

ありがとうございます もう一度情報を整理して何がわからないのかどういう意味なのかをしっかり調べたいと思います
sakura_hana

2018/09/03 01:50

https://teratail.com/questions/144482 これはこの質問の続きでしょうか? もしそうなら多重投稿状態です(本来ならこの質問を編集するのが正しいやり方です)。回答が付いた質問は削除出来ないので、こちらの質問に削除申請を出しておいてください。
UKAWATAKATO

2018/09/03 02:00

わかりました。この一週間で利用し始めたので、あまりしくみを理解していないせいで申し訳ございません。
sakura_hana

2018/09/03 02:08

今確認したらヘルプに質問が編集出来る旨、書かれていないんですね……であれば分からないのも無理は無いと思います。深く気になさらないでください。
UKAWATAKATO

2018/09/03 02:22

そうなんですか....わかりました!またよろしくお願いします。
guest

回答1

0

自己解決

private string RecvData = ""; private Text Variable; void Start() { targetText = GameObject.Find("TextLog").GetComponent<Text>().GetComponent<Text>(); } void Update() { bool flg = true; if (flg == false)//ここしか動作しない { targetText.text = RecvData; flg = false; } } コード

投稿2018/09/05 07:04

UKAWATAKATO

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問