AR出来るかな?① unityで出来るかな?

視線入力アプリを作っていましたが、ダイアログを表示するところで

まあまあな失敗が続き、モチベーションがしょんぼりしています。

 

そこで、少し違うことをやって、

また気を取り直してから

視線入力に戻ろうかなと思います。

 

ということで、ARをやってみようと思います。

もちろん、知識も経験もゼロです。

 

iPhoneiPadで出来るようになりたいと思っています。

作るのは、このままWindowパソコンを使ってみようと思うのですが、

もしMacじゃないとダメとなったら、そのときはMacに切り替えようと思います。

 

どうやって作るのか調べたら

ARKitとVuforiaの二つが出てきました。

どっちが良いのかな・・・?

 

更にいろいろなワードで検索をかけてみて

(「AR iPhone」とか「AR Windows iPad」とか色々・・・)

ヒットの多かったVuforiaの方をやってみます。

分からなくなったときに調べたらいっぱい出てくるかな?

という思いを込めて。

 

参考は↓

Unityでも使える無料ARライブラリVuforiaの基礎知識とライセンス登録、インストール、簡単な使い方:Unity+ARで何ができるのか(1)(2/3 ページ) - @IT

 

こちらに従い、登録をしている最中にこのブログを書いています。

 

SDKをダウンロードするページに来ました。

Unityのマークのところを選んでみます。

 

ダウンロードできました。

 

ダブルクリックしてみます。

一旦、この記事を閉じて続きは次回に書きます。

unity ダイアログボックス⑤ エラーの原因がほんの少し分かったけど解決方法は分からない

↑この、とても悲しいお知らせが消えずにいます。

 

いろんなサイトを見ると、Unityのバージョンの問題もあるような記事も見かけました。

それが原因だった場合、解決できなければ

今まで作ってきたアプリのバージョンアップが永遠に出来なくなるわけで、

かなりモチベーションがしょんぼりします。

 

もう一度、一旦完成形まで作ったプロジェクトをコピペして試し、

それでダメならunityを一度アンインストールしようと思いました。

 

ところが、割とうまく行きました。

二つsceneがありますが、どちらのsceneにつくった

ボタンにもちゃんとスクリプトをアタッチできて、

クリックしたときの動きも命令通りに動いてくれます。

 

こうなれば、後の原因はこれしかない。。。

↑これをimportしたらどうなるか。。。

 

 

でました。

冒頭のエラー

 

これをimportしたことで起きる何らかのエラーがずっと出続けているから

アタッチできないと言われてるんだと言うことが推測できます。

 

で・・・

どうすれば良いのか・・・。

 

エラー文を一部抜粋するとこんな感じですが、

『Multiple precompiled assemblies with the same name System.Windows.Forms.dll included or the current platform.』

 

これで検索すると、一応いくつかヒットしますが

かなり複雑なようです。

 

これはちょっと解決出来る気がしないので、

ダイアログを開く方法を別の手段に変えようかなと思います。

残念ですが・・・

 

 

 

 

unity ダイアログボックス④ エラー祭

エラーが出まくっています。

 

 

新規プロジェクトで作ると、問題なくダイアログが開くのに、

今作っているプロジェクトに全く同じScriptを加えるとエラーが出まくります。

 

少し前までは、

作りたてのボタンに

作りたてのスクリプトをアタッチすることすら拒否されていました。

「can't add script component ・・・・・」というのが出て・・・。

 

これ、本当に苦手です。

プロジェクトを作り直して、何も手を加える前に

(↑をimportする前の状態)

 

新規ボタンに、新規スクリプトをくっつけてみるとくっつきました。

そこから、そーっとスクリプトの内容を変え、ファイル名を変え、

importをすませると、なんとかエラーが起きずに済みました。

 

でも、このimportがアタッチ出来なかった真の原因かどうかは不明なままです・・・

 

冒頭のエラーは相変わらずVisualStudioで出たままです。

 

・・・

 

あれからまあまあ時間をかけて色々やっておりますが、

やっぱり、くっついていたはずのスクリプトがいつの間にかはずれていた

なんて事も続出・・・

 

再度、まっさらなスクリプトを作って

作りたてのボタンにくっつけようとしてもくっつかなくなったり

云々・・・

 

ちょっと考えます。

 

 

 

unity ダイアログボックス③ sceneの名前を変えた後の画面遷移がやっとうまくいった

過去の記事を見返すと、全く同じ失敗をしていたものを見つけました。

 

Unity視線アプリscene移動⑦ 先にドロップダウンリストの記憶とscene名変更後の移動時のエラー - 支援機器やアプリなどのメモ

 

今回は、さすがに前のプロジェクトの時に開いたままの

スクリプトを一生懸命直していた、、、ということはありませんでした。

 

ちゃんと、今のプロジェクトから開いたスクリプトを訂正していました。

 

今回の理由は、

 

以前の記事

Unityアプリのコピーを作って、そこからバージョンアップする方法 - 支援機器やアプリなどのメモ

 

↑ここで書いた内容をあまり守らず、過去の

「xxxxx.csproj」も

「前のプロジェクト名.sln」も

残したまま、作業をはじめてしまい、途中で気付いて全部削除したところ、

 

「今のプロジェクト名.sln」が出来てくれませんでした。

 

そして安易に、

「ecard0.9」の時のプロジェクト(これが最終完成形でここから新しく改編をしようとしている)から

「ecard0.9.sln」をコピーペーストして貼り付けて、名前だけ

「ecard1.2.sln」に書き換えていました。

 

多分、これが原因だと考えました。

 

そこで、もう一度

「ecard0.9」をコピーペーストして

こんどは上記の削除すべきファイルを全部削除して、

「ecard1.3」という名前に変更し、

そこからどれか一つ、スクリプトをダブルクリックして

VisualStudioを立ち上げると、ちゃんと

「ecard1.3」プロジェクトの中に

「ecard1.3.sln」が出来ました。

 

そして、シーン名を書き換えて

 

画面遷移のプログラムを

にすると

無事、エラー無く、画面遷移が出来ました。

 

こうやって書いているとそんなに難解じゃないように見えることばかりなのですが、

画面遷移に関してはとにかくエラーを頻発してしまっています。

 

ちゃんと過去の記事を見返しながらやろう・・・。

 

 

unity ダイアログボックス② sceneの名前を変えた後の画面遷移がうまくいかない

何か所か変更した後のプログラムは、それをコピーペーストして

新しいバージョン名にして、そこから改編するようにしています。

 

改編中に、再起不能になったときに、一個前のプログラムからやり直せるからです。

(以前も書いたけど、こんなことしなくて良いのが多分、GitHubなんでしょう・・・

 苦手意識払拭して使っていかないと永久に使えないままだな・・・)

 

で、今回バージョン名を0.9から1.2に変えました。

 

↓この面白みの全くないのが現時点のスタート画面です。

スタートボタンを押したら

↓この絵カード画面に遷移します。

 

スタート画面のボタンにアタッチしているスクリプトです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class OpenButton : MonoBehaviour
{

 

    public void OnClickStartButton()
    {

 


        SceneManager.LoadScene("ecard1.2");

 


    }


    void Update()
    {

        //Escキーを押したらアプリを閉じる
        if (Input.GetKey(KeyCode.Escape))
        {

            Application.Quit();
        }

    }

}

 

シーンの名前は

↑このままなのに、なんで

"ecard1.2"

に変更してもちゃんと遷移するのか・・・

 

そして

↑シーン名を変えるとエラーが。

Scene 'ecard0.9' couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded.
To add a scene to the build settings use the menu File->Build Settings...

 

deepl翻訳によると

シーン 'ecard0.9' は、ビルド設定に追加されていないか、AssetBundle が読み込まれていないため、読み込むことができませんでした。・・・・

 

的なことが書いてあるのですが、ボタンにアタッチしているスクリプト

  SceneManager.LoadScene("ecard1.2");

 

に、書き換え済みです。

どうして 'ecard0.9' に行こうとさせるのか・・・???

 

 

過去に遡って調べると

Unity視線アプリscene移動① タイトルシーンを作る - 支援機器やアプリなどのメモ

去年の12月にこの部分で苦労しまくった痕跡を残していました。

私はこの画面遷移がどうも苦手のようです。

 

 

・・・

 

   //   SceneManager.LoadScene("ecard1.2");

 

コメントにしても画面遷移しようとすることが分かり、

なにやらおかしなことが起きていることが発覚。

 

エラー文をよくみると、とっくに「視線で絵カード1.2」に名前を変えているのに、

未だに「視線で絵カード0.9」から読もうとしていることが分かりました。

コピーペーストするときに何かが起きたようです。ちょっとフォルダの方を見てみようと思います。

unity ダイアログボックス① いったん、ダイアログを開けるところまで

少し前にこんなことを書きました。

 

---------------

すごい初期から

画像は画像フォルダに入れた絵が表示されるようにしているのですが、

画像が増えてくると、このやり方はすごく面倒くさい気がします。

 

なんとか、パソコン内のフォルダを

ゲーム画面からのぞけるようにしたいなと思います。

---------------

 

ということで、こちらのサイト様記載の内容をそのまま使わせていただきました。

UnityStandaloneFileBrowserを使ってみた

 

ロードボタンを押すと、見慣れたウィンドウが開き、ファイルを選ぶことが

出来るようになりました。

 

画像を選び、それを画面上に表示できるようにしていきたいと思います。

 

デザインを考える AdobeXD③ どこからどこに遷移するかは決めたけど、重そう

作った画面です。

 

リンクは2回させたいと思っていますが、最大何枚になるのか考えると不安になってきました。

 

最初の画面を4枚にし、

その4枚がそれぞれ4枚のリンク先を持っていたとして、

さらにそれが4枚のリンク先に繋がっていたら・・・

 

すごく重くなるのでは・・・と心配しています。

重いのは避けたい。

 

重くなってしまった場合は

・リンクを1回にする

・枚数を3枚までしか選べないようにする

 

などで対応したいと思います。

 

 

 

とりあえず、デザインはここまで。

(デザインというより、どこの画面からどこの画面に遷移するか決めただけか)

次からUnityに戻ります。