ダンカグライク FORUM
いろいろサイトを見回ったのですがいまいち理解ができていないです。
UIを非表示・表示、にしたいのですが、それぞれのUIに対するコード(?)を教えてほしいです。
時間指定の仕方も教えてほしいです。
■ UIの取得と非表示・表示について
Overlay階層のCanvasを取得するAPIと、Camera階層のCanvasを取得するAPIを用意しています。
SCREENMAN:GetOverlayCanvas()
SCREENMAN:GetCameraCanvas()
UIの其々のルート階層はこちらで取得できますが、子階層の取得に手間がかかってしまう事からLuaから直接アクセスが容易な下記のUnityAPIのGameObject.Find関数を使用することが多いです。(ゲーム制作ではパフォーマンスの観点で使用禁止にしています。) 譜面プレビューで「D」キーを押すと其々のGameObjectの名前が確認できます。
_uiGameObject = CS.UnityEngine.GameObject.Find("GameObject名")
取得したUIを非表示・表示にするにはSetActiveを使用します。
_uiGameObject.SetActive(boolean値)
■ 時間指定について
現在の拍数を取得するAPIを用意しています。
GAMESTATE:GetSongBeat()
updateイベント関数内で「指定の拍数を超えたら」という条件式で実現できます。
1度だけ実行する処理はもう一つ変数を用意して前フレームの拍数も比較する方法がお勧めです。
実装方法については、ダンカグライクパッケージVOL.5-4や、
Luaが使用できる他音楽ゲームでは日本語で解説されている記事もあります。
https://paraphrohn.hateblo.jp/entry/2019/06/23/214120
Update形式はダンカグライクに流用可能です。
自身が実装しやすい方法が良いかと思います。
■ UIの取得と非表示・表示について
Overlay階層のCanvasを取得するAPIと、Camera階層のCanvasを取得するAPIを用意しています。
SCREENMAN:GetOverlayCanvas()
SCREENMAN:GetCameraCanvas()
UIの其々のルート階層はこちらで取得できますが、子階層の取得に手間がかかってしまう事からLuaから直接アクセスが容易な下記のUnityAPIのGameObject.Find関数を使用することが多いです。(ゲーム制作ではパフォーマンスの観点で使用禁止にしています。) 譜面プレビューで「D」キーを押すと其々のGameObjectの名前が確認できます。
_uiGameObject = CS.UnityEngine.GameObject.Find("GameObject名")
取得したUIを非表示・表示にするにはSetActiveを使用します。
_uiGameObject.SetActive(boolean値)
■ 時間指定について
現在の拍数を取得するAPIを用意しています。
GAMESTATE:GetSongBeat()
updateイベント関数内で「指定の拍数を超えたら」という条件式で実現できます。
1度だけ実行する処理はもう一つ変数を用意して前フレームの拍数も比較する方法がお勧めです。
実装方法については、ダンカグライクパッケージVOL.5-4や、
Luaが使用できる他音楽ゲームでは日本語で解説されている記事もあります。
https://paraphrohn.hateblo.jp/entry/2019/06/23/214120
Update形式はダンカグライクに流用可能です。
自身が実装しやすい方法が良いかと思います。