各UI画面のコンポーネントには、OnOpen、OnCLoseという開いたときに呼ばれるイベントがあるのでそれを使ってみてください。
using UnityEngine;
namespace Sample
{
public class TitleAnimationController : MonoBehaviour
{
[SerializeField] private GameObject animationPrefab;
[SerializeField] private Transform animationRoot;
private GameObject _spawned;
public void OnOpen()
{
if (animationPrefab != null && _spawned == null)
_spawned = Instantiate(animationPrefab, animationRoot);
}
public void OnClose()
{
if (_spawned != null)
{
Destroy(_spawned);
_spawned = null;
}
}
}
}
1. タイトルの GameObject に TitleAnimationController を追加
2. UtageUguiTitle の On Open → TitleAnimationController.OnOpen() を登録
3. UtageUguiTitle の On Close → TitleAnimationController.OnClose() を登録
4. Animation Root にアニメーションを配置したい親 Transform をセット
アニメーション中に入力を無効化したりする必要がある場合は、
ITransitionというインターフェースを使うパターンもありますが、
そちらはちょっとプログラムの知識が必要になるかと思います。
2026年3月28日土曜日 23:21:44 UTC+9 MM: