実現したいこと
VoiceInputというスクリプトで取得したテキストを別スクリプトでも参照したい.
前提
VoiceInputというスクリプトにあるm_Recognitionsという変数にテキストが格納されており、これをtextというスクリプトでも参照しログに表示しようとしたができません.unity上で実行しています.
発生している問題・エラーメッセージ
NullReferenceException: Object reference not set to an instance of an object text.Update ()
該当のソースコード
VoiceInput.cs
c#
1using UnityEditor;2using UnityEngine;3using UnityEngine.UI;4using UnityEngine.Windows.Speech;5 6public class VoiceInput : MonoBehaviour 7{8 9 [SerializeField]10 private Text m_Hypotheses;11 12 [SerializeField]13 //private Text m_Recognitions;14 public static Text m_Recognitions;15 16 private DictationRecognizer m_DictationRecognizer;17 18 void Start()19 {20 m_DictationRecognizer = new DictationRecognizer();21 22 m_DictationRecognizer.DictationResult += (text, confidence) =>23 {24 Debug.LogFormat("Dictation result: {0}", text);25 m_Recognitions.text += text + "\n";26 27 };28 29 m_DictationRecognizer.DictationHypothesis += (text) =>30 {31 Debug.LogFormat("Dictation hypothesis: {0}", text);32 m_Hypotheses.text += text;33 };34 35 m_DictationRecognizer.DictationComplete += (completionCause) =>36 {37 if (completionCause != DictationCompletionCause.Complete)38 Debug.LogErrorFormat("Dictation completed unsuccessfully: {0}.", completionCause);39 };40 41 m_DictationRecognizer.DictationError += (error, hresult) =>42 {43 Debug.LogErrorFormat("Dictation error: {0}; HResult = {1}.", error, hresult);44 };45 46 m_DictationRecognizer.Start();47 }48}
text.cs
c#
1using System.Collections;2using System.Collections.Generic;3using UnityEngine;4using UnityEngine.UI;5 6public class text : MonoBehaviour 7{8 9 //public GameObject score_object = null; // Textオブジェクト10 //kanri script;11 // 初期化12 void Start()13 {14 15 }16 17 // 更新18 void Update()19 {20 // オブジェクトからTextコンポーネントを取得21 //Text score_text = score_object.GetComponent<Text>();22 //script = GameObject.Find("GameObject").GetComponent<kanri>();23 //score_text.text = hypothesesText.text;24 25 VoiceInput voiceInput = GameObject.Find("voice").GetComponent<VoiceInput>();26 Text hypothesesText = VoiceInput.m_Recognitions;27 Debug.LogFormat(hypothesesText.text);28 29 30 31 32 33 34 35 }36}
試したこと
staticで宣言して他のスクリプトで操作できるようにしたが、値が返ってきません.アタッチするオブジェクトの名称も間違いがないことを確認しています.
どなたかお力を貸していただけると幸いです
0 コメント