unity 好きな画像で視線入力⑧ 速くなったか分からないけど体感速くなった

一旦、今現在の画像を読み取るコードを書きます。

 

やっとusingが減りました。

 

今まで色が違うことに全然気づいてませんでしたが、

使っていないusingはVisualStudio上で灰色になっていたので、

どれを消して良いかすぐに分かりました。

 

 

using UnityEngine;
using System.Collections;
using System.IO;

 

public class image1 : MonoBehaviour
{


    string imagePath = "C:/オリジナル視線アプリ/画像はここ/1";

    IEnumerator Start()

    {

        //Stringの配列  Pathmei   string mp3Path = "C:/image/1" 拡張子* を入れる


        string Pathmei = System.IO.Directory.GetFiles(imagePath, "*", System.IO.SearchOption.AllDirectories);
        string file = Pathmei[0];   //配列の一個目(0番)をfileに入れる。
        //拡張子の出力
        Debug.Log(Path.GetExtension(file));  //配列の一個目(0番)、つまりfile の拡張子をLogに書き出す。


        WWW www = new WWW(Pathmei[0]);

        yield return www;   //関数から抜けずに、一旦停止して値を返す。

        Renderer rend = GetComponent<Renderer>();  
        rend.material.mainTexture = www.texture;    

    }
}

 

 

動作中に、UnityのWindowの中のAnalysysの中のProfilerを立ち上げると

動作の負荷が分かると何かで見聞きしたので立ち上げました。

 

その後、コードをこんな風に書き換えました。

 

using UnityEngine;
using System.Collections;
using System.IO;

 

public class image1 : MonoBehaviour
{


    string imagePath = "C:/オリジナル視線アプリ/画像はここ/1";

    private void Start()
    {


        StartCoroutine(gazouyomu());


    }

 


        IEnumerator gazouyomu()    
                                        //コルーチンは好きな場所で処理を止めたり再開したりできる機能
    {
        string Pathmei = System.IO.Directory.GetFiles(imagePath, "*", System.IO.SearchOption.AllDirectories);
        string file = Pathmei[0];   //配列の一個目(0番)をfileに入れる。
        //拡張子の出力
        Debug.Log(Path.GetExtension(file));  //配列の一個目(0番)、つまりfile の拡張子をLogに書き出す。


        WWW www = new WWW(Pathmei[0]);

        yield return www;   //関数から抜けずに、一旦停止して値を返す。

        Renderer rend = GetComponent<Renderer>();
        rend.material.mainTexture = www.texture;
    }

 


}

 

 

体感的には

速くなった気がします。

 

Profilerはこうなりました。


分かるような分からないような・・・

 

きっとちゃんとした見方があるんだと思いますが、

その見比べの為に、再度、体感速くなる前のコードに戻すのもなあ・・・と

思ったので、また次の機会があればちゃんと

見方を調べようと思います。

 

 

変えたのは、

コルーチンが1度しか呼ばれない (teratail.com)

こちら↑を参考に、

    IEnumerator Start()

    { }

 

の{ }中に、画像の読み取りについてプログラムを書いていたのを、

 

 

IEnumerator gazouyomu()    

  { }

 

の中に書いて、

 private void Start()
    {


        StartCoroutine(gazouyomu2());


    }

 

で実行するようにしました。

 

速くなったというのも負荷をちゃんと数字で

読み取れてないので、体感です。

 

だから変わってないかも知れないのですが、

とりあえず速くなった気がするので一旦、よしとします。

 

この先、画像の枚数を増やそうと思っているので、

その時にまたどうなるかな・・・。

 

⑨に全コードを書きます。