MYMYゲーム制作室

アラ古希姉妹のゲーム制作日記

たぬきのセリフの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");

    } 
}

 

いつの日か、これのミスがわかるようになる日がくるだろうけど、、、。

早く解決したいものだ。

セリフでは見にくいので便宜上、数字だけにしてみたが、、

ヒエラルキー内のFukidashiの構造

インスペクター内の吹き出しのフィールドにそれぞれのテキストをアサイ

しばらくこの問題からは離れて、ほかの事をやってみようかな。(こん)