public void InstantiateEquipModel(string equipPosition, EquipmentModel[] equipmentModels, int level, out BaseEquipmentEntity equipmentEntity) { equipmentEntity = null; if (!equipmentEntities.ContainsKey(equipPosition)) { equipmentEntities.Add(equipPosition, new List <BaseEquipmentEntity>()); } equipmentEntities[equipPosition].Clear(); if (equipmentModels == null || equipmentModels.Length == 0) { return; } Dictionary <string, GameObject> models = new Dictionary <string, GameObject>(); foreach (EquipmentModel equipmentModel in equipmentModels) { if (string.IsNullOrEmpty(equipmentModel.equipSocket) || equipmentModel.model == null) { continue; } EquipmentContainer container; if (!CacheEquipmentModelContainers.TryGetValue(equipmentModel.equipSocket, out container)) { continue; } tempEquipmentObject = Instantiate(equipmentModel.model, container.transform); tempEquipmentObject.transform.localPosition = Vector3.zero; tempEquipmentObject.transform.localEulerAngles = Vector3.zero; tempEquipmentObject.transform.localScale = Vector3.one; tempEquipmentObject.gameObject.SetActive(true); tempEquipmentObject.gameObject.SetLayerRecursively(gameInstance.characterLayer.LayerIndex, true); tempEquipmentObject.RemoveComponentsInChildren <Collider>(false); tempEquipmentEntity = tempEquipmentObject.GetComponent <BaseEquipmentEntity>(); if (tempEquipmentEntity != null) { tempEquipmentEntity.Level = level; equipmentEntities[equipPosition].Add(tempEquipmentEntity); if (equipmentEntity == null) { equipmentEntity = tempEquipmentEntity; } } AddingNewModel(tempEquipmentObject); models.Add(equipmentModel.equipSocket, tempEquipmentObject); } CreateCacheModel(equipPosition, models); }
private void SetEquipmentObject(List <GameObject> objectsList, EquipmentModel[] equipmentModels, int level, out BaseEquipmentEntity equipmentEntity) { equipmentEntity = null; if (objectsList == null || equipmentModels == null || equipmentModels.Length == 0) { return; } GameObject boneObj; foreach (EquipmentModel equipmentModel in equipmentModels) { if (string.IsNullOrEmpty(equipmentModel.equipSocket) || equipmentModel.model == null) { // If data is empty, skip it continue; } boneObj = CacheUmaData.GetBoneGameObject(equipmentModel.equipSocket); if (boneObj == null) { continue; } tempEquipmentObject = Instantiate(equipmentModel.model); tempEquipmentObject.transform.SetParent(boneObj.transform, false); tempEquipmentObject.transform.localPosition = Vector3.zero; tempEquipmentObject.transform.localEulerAngles = Vector3.zero; tempEquipmentObject.transform.localScale = Vector3.one; tempEquipmentObject.gameObject.SetActive(true); tempEquipmentObject.gameObject.SetLayerRecursively(CurrentGameInstance.characterLayer.LayerIndex, true); tempEquipmentObject.RemoveComponentsInChildren <Collider>(false); tempEquipmentEntity = tempEquipmentObject.GetComponent <BaseEquipmentEntity>(); if (tempEquipmentEntity != null) { tempEquipmentEntity.Level = level; if (equipmentEntity == null) { equipmentEntity = tempEquipmentEntity; } } objectsList.Add(tempEquipmentObject); } }