add ready player me POC
This commit is contained in:
@@ -1,10 +1,42 @@
|
||||
using ReadyPlayerMe.Core;
|
||||
using ReadyPlayerMe.Samples.AvatarCreatorWizard;
|
||||
using UnityEngine;
|
||||
using ReadyPlayerMe.AvatarCreator;
|
||||
using UnityEditor.Animations;
|
||||
|
||||
public class StartUp : MonoBehaviour
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
[SerializeField] private AnimatorController characterAnimatorController;
|
||||
[SerializeField] private AvatarCreatorStateMachine avatarCreatorStateMachine;
|
||||
[SerializeField] private AvatarConfig inGameConfig;
|
||||
|
||||
private AvatarObjectLoader avatarObjectLoader;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
GameManager.Instance.Scene.Change("City");
|
||||
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");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user