Files
SimUL/Assets/Scripts/StartUp.cs
2024-11-22 07:08:52 +02:00

43 lines
1.4 KiB
C#

using ReadyPlayerMe.Core;
using ReadyPlayerMe.Samples.AvatarCreatorWizard;
using UnityEngine;
using ReadyPlayerMe.AvatarCreator;
using UnityEditor.Animations;
public class StartUp : MonoBehaviour
{
[SerializeField] private AnimatorController characterAnimatorController;
[SerializeField] private AvatarCreatorStateMachine avatarCreatorStateMachine;
[SerializeField] private AvatarConfig inGameConfig;
private AvatarObjectLoader avatarObjectLoader;
private void OnEnable()
{
avatarCreatorStateMachine.AvatarSaved += OnAvatarSaved;
}
private void OnDisable()
{
avatarCreatorStateMachine.AvatarSaved -= OnAvatarSaved;
avatarObjectLoader?.Cancel();
}
private void OnAvatarSaved(string avatarId)
{
avatarCreatorStateMachine.gameObject.SetActive(false);
var startTime = Time.time;
avatarObjectLoader = new AvatarObjectLoader();
avatarObjectLoader.AvatarConfig = inGameConfig;
avatarObjectLoader.OnCompleted += (sender, args) =>
{
AvatarAnimationHelper.SetupAnimator(args.Metadata, args.Avatar);
DebugPanel.AddLogWithDuration("Created avatar loaded", Time.time - startTime);
GameManager.Instance.Scene.Change("City");
};
avatarObjectLoader.LoadAvatar($"{Env.RPM_MODELS_BASE_URL}/{avatarId}.glb");
}
}