トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

OculusGoでタイピングゲームプロジェクト(2

 前回の続き

bibinbaleo.hatenablog.com

 細かいところが進化したけど、うまくいかないところもあるからメモ。

youtu.be

スタート画面

アプリを立ち上げたらいきなり残り時間60秒のタイピングゲームが始まってしまうので、スタート画面を作る。

最初別のシーンをスタートシーンとして作っていたが、SceneLoadをしてメインのタイピングゲーム画面に遷移するとカーソルが表示されず、UIの入力ができない。

こんな感じにカーソルが出るはずなのに出ない。

f:id:bibinbaleo:20180926210055p:plain

こんな感じに通り抜けてしまう。

f:id:bibinbaleo:20180926210100p:plain

あっもしかしてCanvasをGo側に入力できるCanvasだと認識させる何かが外れているのか。

だからカーソルがあってないのか

 

仕方がないので、同じシーン内でスタートキャンバスを出して、これが出ている間はカウントを始めないようにした。

f:id:bibinbaleo:20180926210308p:plain

if (endcanvas.activeSelf == false && startcanvas.activeSelf == false)
{
time += Time.deltaTime;
lefttime = 60 - (int)time;
}
else
{
time = 0;
lefttime = 60;
}

この時elseを設定しないとアプリ開始してすぐに終わってしまった。

・BGM

dova-s.jp

BGMどういうのがいいんだろう?自分が何回も聞くから今はリラックス系にしてるけど。

・文字入力が正解だった時にポン

・60秒終わったら、かんかんかん!

効果音 『 その他音 』 by On-Jin ~音人~の時間切れ

時計のちくたくの音も入れてみたけどうるさかった。

残り10秒とかで入れたらいいかもしれないけど、スクリプト内でうまく時計に合わせてならせない><

ライセンス表記

f:id:bibinbaleo:20180926213939p:plain

入力するところの後ろにパネルを出した。あとこっちじゃないよっていう矢印も出した。

f:id:bibinbaleo:20180926213934p:plain

キーボードの大小を選ぶ

2種類のキーボードを切り替えれるようにした。

f:id:bibinbaleo:20180926220818p:plain

f:id:bibinbaleo:20180926221400p:plain

コントローラーのイラストを描いた

コントローラーのどこを押したらいいかがわかるようにイラストを描いたよ!

f:id:bibinbaleo:20180926210308p:plain

フリーで使えるイラストなかったから、誰かの役に立てばと思って自分でいろいろなパターン描いて配布しようと思ったけど、人のプロダクトを勝手にイラスト書いていいのかな?

意匠権・・・

検索してもよくわからなかった。

 というわけでこそっと配布してます。

bibinbaleo.hatenablog.com

課題:リスタート

上のほうにも書いたけど、SceneManager.LoadScene()をしたら、カーソルがキャンバスに合わなくなって選択できなくなるので、リスタートができない。

今はいったんアプリを落として立ち上げてる。

ここらへんかな?よくわからない

tsubakit1.hateblo.jp

どうしたらいいんだろう

キャンバスについているOVR raycasterというのを外すと、カーソルで選択できなくなるので、ロードシーンした時にこれが動いていないのかな?

f:id:bibinbaleo:20180926222220p:plain

ビデオ録画できるようになってる

自作アプリも録画できるようになったんですね。

昔できなかったよね?まあいいやうれしい。

これで被験者実験で最悪データをスクリプトから取れなくても画面録画しておけば何とか手動でデータ取れそう。

アプリ一覧から実行できる

実機ビルドしているのにアプリ一覧から起動できるようになった。

f:id:bibinbaleo:20180926223825p:plain

アルファリリースしたから?でも最初は提供元不明だったし・・・なんでや!

課題

if(キーを押した時)がうまくいってないから、前に入れた文字の変数が残っていて、同じ文字が続けて出た時に一気に入ってしまう。

その関連で、入力文字数が取れていない

そのせいで誤字率が出ていない。

次の単語に行った時に音を鳴らす。

解決した!!!

他のタイピングゲームを研究する。

if(キーを押した時)

keyboardスクリプトのAppendValueの中にa++と書いて、

TypeObjectスクリプト

if (k1.a >b)////入力されたら
{
b = k1.a;

とすることでキーを押したときを実装しました。

キーを押したらAppendValue()が呼ばれるので何かしらそれを察知すればよかったのですね。

本当はflagとか使いたかったけど、使い方がよくわからなかった。

呼ばれたときに1にするとして、どうやって戻せばいいの?

すぐ下に書いとけばいいのかな?

まあいいや。

 

それよりKeyboard側は

namespace HoloToolkit.UI.Keyboard
{

public class Keyboard : Singleton<Keyboard>, IDictationHandler
{

public Text Text;
public int a;

という変数宣言。staticは付けてはいけない。

 

それをその変数を受け取る側ではpublicでKeyboardスクリプトがついているゲームオブジェクトを取得して、

using HoloToolkit.UI.Keyboard;

public GameObject keyboard1;

 

Keyboard k1= keyboard1.GetComponent<Keyboard>();

こうすることで初めてk1.value2が使える。

こうしないとエラーが出た。

yamakami21.hatenablog.com

なぜかほかの方法では、変数をほかのスクリプトから取得できない。

 

最後に

今日1日でかなり進んだ。

f:id:bibinbaleo:20180926224002p:plain

あとビルドするときOculus/Avatar/Resourcesを消すと早くなるらしい。