private static void InitAvatarSdkMgrIfNeeded() { if (!AvatarSdkMgr.IsInitialized) { AvatarSdkMgr.Init(sdkType: SdkType.Offline); AvatarSdkMgr.Settings.SeparateHeadAndFaceResources = false; } }
private IEnumerator Initialize() { // First of all, initialize the SDK. This sample shows how to provide user-defined implementations for // the interfaces if needed. If you don't need to override the default behavior, just pass null instead. if (!AvatarSdkMgr.IsInitialized) { AvatarSdkMgr.Init( stringMgr: stringManager, storage: persistentStorage, sdkType: sdkType ); } GameObject providerContainerGameObject = GameObject.Find("AvatarProviderContainer"); if (providerContainerGameObject != null) { avatarProvider = providerContainerGameObject.GetComponent <AvatarProviderContainer>().avatarProvider; } else { // Initialization of the IAvatarProvider may take some time. // We don't want to initialize it each time when the Gallery scene is loaded. // So we store IAvatarProvider instance in the object that will not destroyed during navigation between the scenes (Gallery -> ModelViewer -> Gallery). providerContainerGameObject = new GameObject("AvatarProviderContainer"); DontDestroyOnLoad(providerContainerGameObject); AvatarProviderContainer providerContainer = providerContainerGameObject.AddComponent <AvatarProviderContainer>(); avatarProvider = AvatarSdkMgr.IoCContainer.Create <IAvatarProvider>(); providerContainer.avatarProvider = avatarProvider; var initializeRequest = InitializeAvatarProviderAsync(); yield return(Await(initializeRequest, null)); if (initializeRequest.IsError) { Debug.LogError("Avatar provider isn't initialized!"); yield break; } } yield return(UpdateAvatarList()); // disable generation buttons until avatar provider initializes foreach (var button in galleryControls.GetComponentsInChildren <Button>(false)) { if (button.name.Contains("Generate")) { button.interactable = true; } } }
void Start() { Screen.fullScreen = false; Screen.orientation = ScreenOrientation.Portrait; AppSocket.SetOnReceiveHandler(OnReceive); if (!AvatarSdkMgr.IsInitialized) { AvatarSdkMgr.Init(); } avatarProvider = AvatarSdkMgr.IoCContainer.Create <IAvatarProvider>(); QualitySettings.antiAliasing = 2; AppSocket.SendCommand(AppSocket.SendType.UNITY_LOADED); if (Application.platform != RuntimePlatform.Android) { QualitySettings.antiAliasing = 8; String marcoBody = "mech_ferrari"; String marcoAvatar = "3907ed35-7071-4ed1-b242-169cb3abc237"; String marcoHair = "male_NewSea_J082m"; String marcoHairColor = "#3E271F"; String paolaBody = "sport_female_m"; String paolaAvatar = "7d910c92-b62c-4084-8f42-749a2cb94eb2"; String paolaHair = "female_NewSea_J096f"; String paolaHairColor = "#202020"; String aliceBody = "medic_female"; String aliceAvatar = "063f8e92-4675-4bee-8f4f-a303779b4e3c"; String aliceHair = "female_NewSea_J123f"; String aliceHairColor = "#3E271F"; if (playerObj != null) { CreateAvatar("b7ce00b9-3589-4dbd-9b5b-2466233e9d89", paolaAvatar, paolaHair, paolaHairColor); } else { CreateAvatar("b7ce00b9-3589-4dbd-9b5b-2466233e9d89", marcoBody, marcoAvatar, marcoHair, marcoHairColor); } } }
public static void StartInitialization() { lock (initSyncMutex) { if (!AvatarSdkMgr.IsInitialized) { Debug.Log("AvatarSdkMgr.Init"); AvatarSdkMgr.Init(sdkType: SdkType.Offline); } if (!IsInitialized && !IsInitializationInProgress) { avatarProvider = AvatarSdkMgr.IoCContainer.Create <IAvatarProvider>(); initRoutine = EditorRunner.instance.Run(InitRoutine()); } } }
protected virtual void Start() { var ui = buttons.Select(b => b.gameObject).ToArray(); if (!SampleUtils.CheckIfSupported(progressText, ui, sdkType)) { return; } // first of all, initialize the SDK if (!AvatarSdkMgr.IsInitialized) { AvatarSdkMgr.Init(sdkType: sdkType); } StartCoroutine(Initialize()); // Anti-aliasing is required for hair shader, otherwise nice transparent texture won't work. // Another option is to use cutout shader, but the look with this shader isn't that great. #if UNITY_STANDALONE_WIN || UNITY_EDITOR || UNITY_EDITOR QualitySettings.antiAliasing = 8; #else QualitySettings.antiAliasing = 4; #endif foreach (var b in buttons) { #if UNITY_EDITOR || UNITY_WEBGL || UNITY_ANDROID || UNITY_IOS if (b.name.Contains("UserPhoto")) { b.gameObject.SetActive(true); fileBrowser = b.GetComponentInChildren <FileBrowser>(); if (fileBrowser != null) { fileBrowser.fileHandler = GenerateAvatarFunc; } } #endif #if UNITY_ANDROID || UNITY_IOS if (b.name.Contains("CameraPhoto")) { b.gameObject.SetActive(true); } #endif } }
private IEnumerator Initialize() { if (!AvatarSdkMgr.IsInitialized) { AvatarSdkMgr.Init(stringMgr: new DefaultStringManager(), storage: new DefaultPersistentStorage(), sdkType: SdkType.Cloud); } if (avatarProvider == null) { avatarProvider = new CloudAvatarProvider(); } connection = avatarProvider.Connection; var imageItems = sampleImagesPanel.GetComponentsInChildren <ImageItem>(); foreach (ImageItem item in imageItems) { item.imageSelectedHandler = HandleSelectedImage; } if (createdAvatar != null) { UpdateSelectedImage(selectedImageBytes); UpdateAvatarState(avatarState, PipelineType.HEAD); } image.gameObject.SetActive(true); // initialize provider if (!avatarProvider.Connection.IsAuthorized) { yield return(avatarProvider.InitializeAsync()); if (!avatarProvider.Connection.IsAuthorized) { Debug.LogError("Authentication failed!"); yield break; } } }