Unityにおいて,C#で以下のように,ボタンを押すとOpenFileDialogによってファイルを開くダイアログがでてくるようなコードを書きました.
C#
1public class AAA : MonoBehaviour 2{ 3 public UnityEngine.UI.Button BBButton; 4 public Text myText; 5 6 void Start() 7 { 8 BBButton.onClick.AddListener(() => 9 { 10 OpenFileDialog open_file_dialog = new OpenFileDialog(); 11 open_file_dialog.FileName = @"C:\"; 12 open_file_dialog.ShowDialog(); 13 14 myText = GameObject.Find("DebugText").GetComponent<Text>(); 15 myText.text = open_file_dialog.FileName; 16 } 17 } 18}
これをUnity上で実行すると,実行画面上のボタンを押すとファイルダイアログが出力され,ファイルを選択し,実行画面上のTextが選択したファイルのパスに変わり,うまくいくのですが,Build&Runすると,実行画面上のボタンを押してもファイルダイアログが出力されませんでした.
myText.text = open_file_dialog.FileName;
を
myText.text = "aaaa";
のように変えたところ,実行画面上のTextにaaaaと出力されなかったため,ファイルダイアログを開くところがうまくいっていないのだと思われます.
また,先ほど"Unity上での実行はうまくいく"という風に書きましたが,Unity上で実行してボタンを押すと下の画像のようなダイアログがでて,OKを押すとファイルダイアログがでてきます.
このダイアログについては調べたのですが,有効な解決策はわかりませんでした.
また,以前こちらで質問したようなエラーが出て,Build&Runができなかったことがあったのですが,「Player Settings...」→「Other Settings」→「Scripting Runtime Version」を「.NET 3.5 Equivakent」から「.NET 4.x Equivakent」に変更したことで通ったのでそのままにしていますが,それが関係しているということはありますでしょうか?
Unityのバージョンは2018.2.2f1で,この質問を投稿した時点では最新です.
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。