public virtual async Task CreateHolder() { //Get the game items under current player var items = await GameManager.Instance.Characters.GetOwnedItemInstances(); foreach (var item in items) { //If it's character if (item.GiType == typeof(Character).Name) { Vector3 position = item.GetVector3Attr(PlayerGameItem.ATTRS_POSITION, Vector3.zero); Vector3 rotation = item.GetVector3Attr(PlayerGameItem.ATTRS_POSITION, Vector3.zero); GameObject characterHolder = GameObject.Instantiate(CharacterHolder, position, Quaternion.Euler(rotation.x, rotation.y, rotation.z)); CharacterHolder holderComponent = characterHolder.GetComponent <CharacterHolder>(); BindItem(holderComponent, item); } } }
public virtual async Task BindItem(CharacterHolder holderComponent, PlayerGameItem item) { await holderComponent.BindCharacterPGI(item, item.PrefabType); }