您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

49 行
1.5 KiB

using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
public class PlayerConfigurator : MonoBehaviour
{
[SerializeField]
private Transform m_HatAnchor;
[SerializeField]
private GameManagerSO m_GameManager;
private AsyncOperationHandle m_HatLoadingHandle;
void Start()
{
// TODO: Implement a m_GameManager.HatsUnlocked method on the GameManager script
//If the condition is met, then a hat has been unlocked
if(m_GameManager.s_ActiveHat >= 0)
{
SetHat(string.Format("Hat{0:00}", m_GameManager.s_ActiveHat));
}
}
// TODO: Change the string parameter
public void SetHat(string hatKey)
{
// We are using the InstantiateAsync function on the Addressables API, the non-Addressables way
// looks something like the following line, however, this version is not Asynchronous
// GameObject.Instantiate(prefabToInstantiate);
m_HatLoadingHandle = Addressables.InstantiateAsync(hatKey, m_HatAnchor, false);
m_HatLoadingHandle.Completed += OnHatInstantiated;
}
private void OnDisable()
{
m_HatLoadingHandle.Completed -= OnHatInstantiated;
}
private void OnHatInstantiated(AsyncOperationHandle obj)
{
// We can check for the status of the InstantiationAsync operation: Failed, Succeeded or None
if(obj.Status == AsyncOperationStatus.Succeeded)
{
Debug.Log("Hat instantiated successfully");
}
}
}