#開発環境
Unity2018.2.3f1
VisualStudioCommunity2017
##アプリとして吐き出したチェック対象
PC
OculasGo(apkのインストール)
#読者対象者
Unityのタイムラインをゲームで使いたい人
タイムラインでこの期間だけ、何かの入力が有効なイベントをとりたいなどの人
ただし、以下の人は役に立つ内容ではありません。
TimeLine側からイベントを発行を行う。のを実装したいと考えている方。
###得られる知見
上記の解決
#前書き
前回の記事にて、以下の内容を記述しました。
TimeLineから条件によって、呼び出すTimeLineを変える方法の失敗談
https://qiita.com/herieru/items/8024dc3e8abd7989c65b
しかしながら、この方法は、Editor上でのみで動作する方法で
exeとして吐き出したり、OculasGoで実行するとてんでイベントなんて来やしない内容でした。
なので、前回のは実質失敗記事になりました。(タイトルも変えた)
#今回の内容
特定の時間内に、特定のボタンを押した時に、実行していいタイミング(イベント)
かどうかを判断する一つの解決策です。
ただ、設計とかの概念としては、一切考慮していないものになります。
たぶんその辺は、もっと有名な方々が、その辺の記事を書いているので、その記事をお読みください。
#どんな時に使う?
例えばこんな時
・TimeLine上のここからこの時間の間だけ、ボタンの入力を受け付けるようなもの
・特定の時間制限つきで何かの判定を行うためのもの
#完成図
ざっくりいうと、上記の図のようにEventCheak用のGameObjectのActive状態かをみて、その状態をイベントが欲しいスクリプトから見て、イベントを行ってよいかの判断を行うようにします。
#手順
1.hierarchy上に、GameObjectを置き、それのActiveを切る
2.それの参照をイベント判定を行いたいところのスクリプトに対して、GameObecjectの参照をInspectorで設定を行う
3.TimeLineで、配置したGameObjectをActiveControlTrackで設定を行い、イベントが欲しいタイムラインのタイミングで、設定する。
4.スクリプト側から、イベント(入力など)が行われた際に、今はイベント期間中として有効かどうかを確認して、有効だったら、内部でイベントを発行する。
といった感じです。
なので、TimeLineから、イベントを発行するわけではないので注意が必要です。