InputFieldで入力したプレイヤー名を変数として配列の要素に導入したい

実現したいこと

・セリフにInputFieldで入力したプレイヤー名を導入したい

前提

unityでノベルゲームを作っています。
プレイヤー名はInputFieldで入力されたものを変数として扱い、セリフにくっつけようと思っています。
現在配列の要素にセリフを入れています。

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

CS0236 フィールド初期化子は、静的でないフィールド、メソッド、またはプロパティ 'Object.name' を参照できません

該当のソースコード

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; public class CommentDisplay1 : MonoBehaviour { string[] texts = {"テキスト0", "テキスト1", "テキスト2", "テキスト3", $"{name}さんですね!"};//Unity上で入力するstringの配列 int textNumber;//何番目のtexts[]を表示させるか string displayText;//表示させるstring int textCharNumber;//何文字目をdisplayTextに追加するか int displayTextSpeed; //全体のフレームレートを落とす変数 bool click;//クリック判定 bool textStop; //テキスト表示を始めるか public GameObject NameInput; public GameObject Comment1; InputField inputField; // Start is called before the first frame update void Start() { inputField = GameObject.Find("InputField").GetComponent<InputField>(); } // Update is called once per frame void Update() { if (textStop == false) //テキストを表示させるif文 { displayTextSpeed++; if (displayTextSpeed % 10 == 0)//5回に一回プログラムを実行するif文 { if (textCharNumber != texts[textNumber].Length)//もしtext[textNumber]の文字列の文字が最後の文字じゃなければ { displayText = displayText + texts[textNumber][textCharNumber];//displayTextに文字を追加していく textCharNumber = textCharNumber + 1;//次の文字にする } else//もしtext[textNumber]の文字列の文字が最後の文字だったら { if (textNumber != texts.Length - 1)//もしtexts[]が最後のセリフじゃないときは { if(textNumber == 3) { NameInput.SetActive(true); } else if (click == true)//クリックされた判定 { displayText = "";//表示させる文字列を消す textCharNumber = 0;//文字の番号を最初にする textNumber = textNumber + 1;//次のセリフにする } } else //もしtexts[]が最後のセリフになったら { if (click == true) //クリックされた判定 { Comment1.SetActive(false); } } } this.GetComponent<TextMeshProUGUI>().text = displayText;//画面上にdisplayTextを表示 click = false;//クリックされた判定を解除 } if (Input.GetMouseButton(0))//マウスをクリックしたら { click = true; //クリックされた判定にする } } } public void GetInputName() { //InputFieldからテキスト情報を取得する string name = inputField.text; //入力フォームのテキストを空にする inputField.text = ""; displayText = "";//表示させる文字列を消す textCharNumber = 0;//文字の番号を最初にする textNumber = textNumber + 1;//次のセリフにする NameInput.SetActive(false); } }

試したこと

int変数(textNumber)でも試してみましたが、エラーは直りませんでした。
配列の要素だと変数を入れられないのかなとも思っていますが、解決策が分かりません。

コメントを投稿

0 コメント