2023年6月26日月曜日

VideoPlayerをローカルから再生する方法

 VideoPlayerをローカルから再生する場合とリソースから再生する方法

VideoPlayer vp = GetComponent<VideoPlayer>();

string stCurrentDir = System.IO.Directory.GetCurrentDirectory();

//ローカルから読み取り 実行ファイルと同じディレクトリ

vp.url = stCurrentDir+ "vid1.mp4";

//resourceから読み取り プロジェクトのリソースフォルダ/videoから

vp.clip = Resources.Load<VideoClip>("video/vid1");

vp.Play();

  1. VideoPlayerとc#ファイルを同じオブジェクトに張り付ける
  2. VideoPlayerのレンダーをカメラのニアーにする
  3. VideoPlayerのカメラをメインカメラに設定する

所感

音楽を読み込むよりかなり簡単です。

オーディオソースからはURLで音楽を読み取れないので



Unity 複数の音をプログラムから同時に鳴らす

複数の音をプログラムから同時に鳴らすサンプル 

単一のオーディオソースの場合

AudioSource audioSource = GetComponent<AudioSource>();

複数のオーディオソース

AudioSource[] audioSources = GetComponents<AudioSource>();

bgm = audioSources[0];

koukaon = audioSources[1];

  1. 複数のオーディオソースをシーンに追加する
  2. GetComponents<AudioSource>で配列のオーディオソースを取得

GetComponentの末尾にsをつけると複数のオーディオソースをプログラムから取得できます。

2023年6月24日土曜日

アセット外の音楽ファイルを鳴らすサンプル

プロジェクト(アセット)外部の音楽ファイルを鳴らす方法。

  •  1.AudioSourceをシーンのゲームオブジェクトの張り付ける
  • 2.実行ファイル(プロジェクト直下)にoto1.mp3を配置
  • 3.以下のコードを動作


AudioSource ads = GetComponent<AudioSource>();

yso.OtoSaisei(ads, @"/" + "oto1.mp3");

   public void OtoSaisei(AudioSource oto,string name)//2023

    {

        if (od.isNaibu==false)//外部ファイルを使う

        {

            od.StartCoroutine(StreamPlayAudioFile(oto,name));

        }

        else//プロジェクト内部のファイルを使う

        {

            oto.clip = (AudioClip)Resources.Load(name);

            oto.Play();

        }

        }

    IEnumerator StreamPlayAudioFile(AudioSource oto,string fileName)

    {


        // appファイルの直下のパスを取得

        string stCurrentDir = System.IO.Directory.GetCurrentDirectory();

       using (WWW www = new WWW(stCurrentDir + fileName))

        {

            yield return www;

            oto.clip = www.GetAudioClip(true, true);

            oto.Play();

        }

    }

注意点 以下のエラーが発生する場合は一度環境(ソフト)を再起動してください。

Failed to decompress data for the AssetBundle 'Memory'.

UnityEngine.WWW:get_assetBundle ()


2023年6月13日火曜日

Unity リソースとローカルから画像を読み込む

 Unityでresourceとローカルから画像ファイルを読み取るサンプル

public Texture2D loadImage(string name,bool naibu)

{

string stCurrentDir = System.IO.Directory.GetCurrentDirectory();

Texture2D tex = new Texture2D(0, 0);

if (naibu)//内部リソース

{

tex = Resources.Load( name.Remove(0, 1)) as Texture2D;//先頭の/はなし

}

else

{

tex.LoadImage(LoadBytes(stCurrentDir + name));//先頭に/必要

}

return tex;

}

2023年6月11日日曜日

Unityがヴィジュアルスタジオと連動されない

 Unityがヴィジュアルスタジオと連動されない時の対処方法。

メニューの編集>環境設定>外部ツール>外部編集エディタをビジュアルスタジオに変更します。
そのあと
シーンをどこでも良いので変更してプロジェクトを保存します。

保存しないと繁栄されません

unityでリソースに画像をドラックアンドドロップできない


 Unityでファイルのドラックアンドドロップ何故かできなくなっている…

解決方法

リソースフォルダで>右クリック>新しいアセットをインポート

所感

久々のUnityは基本操作を覚えなおしです。

2023年6月8日木曜日

Unityエラー Should not grab hot control with an active capture

久々にUnityを動かしたら以下の見慣れないエラーが発生しました。 

Should not grab hot control with an active capture

UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

(ホットコントロールがある場合はキャプチャーしないでください)

原因

メインカメラにスクリプトを張り付けていた際に発生。

unityのバグの可能性あり。

解決方法

Unityを再起動