たぬきのセリフの2番がどうしても出続ける問題( ;∀;)
UIのCanvasの中に、吹き出しのイメージを入れて、それの子どもとして、6つのテキストを入れている。それがInvokeを使って、順番に表示される仕組みを作った。
これを再生してみると、text1 text2 までは順調に2秒間隔くらいでこちらの設定どおりに表示される。ところが、そのあと、text2はずっと居座りつづけ、text3 text4 text5 text6 が順番に表示されるのにかぶさる形で、表示され続けるではないか!!!
スクリプトはtext1からtext6まで、同じ調子で書いてあるので、なぜtext2だけが異常な動きをするのか、理解できない。
Invokeを使ったスクリプトの他に、elapsedTimeを使って途中から経過時間を計測するやり方も試してみたが、それでも2番が特別。2が呪われているのなら、ラッキーセブンの7に変更してみたらと、ゲン担ぎのようなこともしてみたが、それだとtext7が居座ることになり、結果は同じ。お手上げ状態。この数日それにかかりきりなのに、いまだ原因が分からず、停滞している。スクリプトは以下。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class FukidashiController : MonoBehaviour
{
[SerializeField] GameObject text1Text;
[SerializeField] GameObject text2Text;
[SerializeField] GameObject text3Text;
[SerializeField] GameObject text4Text;
[SerializeField] GameObject text5Text;
[SerializeField] GameObject text6Text;
// Start is called before the first frame update
void Start()
{
DisplayFukidashi0();
// CanvasFukidashi.SetActive(false);
Invoke("DisplayFukidashi1", 2.0f); // 関数 DisplayFukidashi1()を2秒後に実行
Invoke("DisplayFukidashi0", 3.0f);
Invoke("DisplayFukidashi2", 5.0f);
Invoke("DisplayFukidashi0", 6.0f);
Invoke("DisplayFukidashi3", 7.0f);
Invoke("DisplayFukidashi0", 9.0f);
Invoke("DisplayFukidashi4", 10.0f);
Invoke("DisplayFukidashi0", 13.0f);
Invoke("DisplayFukidashi5", 14.0f);
Invoke("DisplayFukidashi0", 15.0f);
Invoke("DisplayFukidashi6", 17.0f);
Invoke("DisplayFukidashi0", 18.0f);
Invoke("GotoMainScene", 19.0f);
}
void DisplayFukidashi0()
{
text1Text.SetActive(false);
text2Text.SetActive(false);
text3Text.SetActive(false);
text4Text.SetActive(false);
text5Text.SetActive(false);
text6Text.SetActive(false);
}
void DisplayFukidashi1()
{
text1Text.SetActive(true);//セリフ1 こんにちはぼくは
}
void DisplayFukidashi2()
{
text2Text.SetActive(true);//セリフ2 いつのまにか森にすみついた
}
void DisplayFukidashi3()
{
text3Text.SetActive(true);//セリフ3 だから森の木たちがおこって
}
void DisplayFukidashi4()
{
text4Text.SetActive(true);//セリフ4 このびんにはいったくすりを
}
void DisplayFukidashi5()
{
text5Text.SetActive(true);//セリフ5 きつねくん手伝ってくれない
}
void DisplayFukidashi6()
{
text6Text.SetActive(true);//セリフ6 ゾンビにおそわれて
}
public void GotoMainScene()
{
SceneManager.LoadScene("MainScene");
}
}
いつの日か、これのミスがわかるようになる日がくるだろうけど、、、。
早く解決したいものだ。
しばらくこの問題からは離れて、ほかの事をやってみようかな。(こん)