前提・実現したいこと
文字を出して、何秒待って、文字を変えて、何秒待って、というようなことをしたいです。
発生している問題・エラーメッセージ
コルーチンを使って何秒待機するというようなことをしたくて
IEnumerator oldTV(){ yield return new WaitForSeconds (1.0f); }
というような文を追加するといろんなところでエラーがで出ます。
エラー⑴ "IEnumerator oldTV(){" のところ(27行目)
Assets/TVtext.cs(27,20): error CS1525: Unexpected symbol `(', expecting `,', `;', or `='
エラー⑵⑶ "} else {" のところ(34行目) ここでは2つエラーが出ています。
Assets/TVtext.cs(34,8): error CS1519: Unexpected symbol `else' in class, struct, or interface member declaration
Assets/TVtext.cs(34,10): error CS9010: Primary constructor body is not allowed
エラー⑷ "}" のところ(41行目)
Assets/TVtext.cs(41,0): error CS1525: Unexpected symbol `}'
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class TVtext : MonoBehaviour { 7 public Text mission; 8 public GameObject backlight; 9 10 int TVswitch = 0; //0なら付いていない、1なら付いている 11 12 // Use this for initialization 13 void Start () { 14 mission.text = ""; 15 backlight.SetActive (false); 16 TVswitch = 0; 17 StartCoroutine (oldTV()); 18 } 19 20 // Update is called once per frame 21 void Update () { 22 23 } 24 25 public void Buttion(){ 26 if (TVswitch == 0) { 27 IEnumerator oldTV(){ 28 //テレビをつける 29 mission.text = "赤い風船"; 30 backlight.SetActive (true); 31 yield return new WaitForSeconds (1.0f); 32 } 33 TVswitch = 1; 34 } else { 35 //テレビを消す 36 mission.text = ""; 37 backlight.SetActive (false); 38 TVswitch = 0; 39 } 40 } 41}
試したこと
コルーチンの使い方を調べたところ、void Start(){}のところでStartCoroutine (oldTV());と書いてあるのとStartCoroutine ("oldTV");と書いてあるのとがあったりして両方試しましたが変わりません。
補足情報(FW/ツールのバージョンなど)
バージョンは2017.4.29f1 Personalって書いてあります。
エラーが出るならエラーメッセージを提示しましょう
余計な編集、翻訳しないでコピペでそのまま提示してください
質問は編集できるんで、追記してください
回答1件
あなたの回答
tips
プレビュー