43 lines
1.4 KiB
C#
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");
|
|
|
|
}
|
|
}
|