ict.lixian.three/Assets/Samples/Ready Player Me Avatar Creator/1.1.1/AvatarCreatorExample/Scripts/GameManager.cs

42 lines
1.3 KiB
C#

using ReadyPlayerMe.AvatarCreator;
using ReadyPlayerMe.Core;
using UnityEngine;
namespace ReadyPlayerMe
{
public class GameManager : MonoBehaviour
{
[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) =>
{
AvatarAnimatorHelper.SetupAnimator(args.Metadata.BodyType, args.Avatar);
DebugPanel.AddLogWithDuration("Created avatar loaded", Time.time - startTime);
};
avatarObjectLoader.LoadAvatar(AvatarEndpoints.GetAvatarPublicUrl(avatarId));
}
}
}