private void EquipFeature(CarEquipmentData carEquipmentData) { switch (carEquipmentData.itemType) { case ItemType.Front: AddItem(carEquipmentData, Front); SaveEquipment(carEquipmentData); break; case ItemType.Topper: AddItem(carEquipmentData, Topper); SaveEquipment(carEquipmentData); break; case ItemType.Antena: AddItem(carEquipmentData, Antena); SaveEquipment(carEquipmentData); break; case ItemType.Color: ChangeColor(carEquipmentData.name); SaveEquipment(carEquipmentData); break; default: break; } }
private void SaveEquipment(CarEquipmentData carEquipmentData) { bool equipReplaced = false; if (actualEquipment == null) { actualEquipment = new List <CarEquipmentData>(); } for (int i = 0; i < actualEquipment.Count; i++) { if (actualEquipment[i].itemType == carEquipmentData.itemType) { actualEquipment[i] = carEquipmentData; equipReplaced = true; } } if (!equipReplaced) { actualEquipment.Add(carEquipmentData); } }
private void AddItem(CarEquipmentData item, Transform itemTransform) { if (item.equpmentPrefab != null) { // Check if the Dictionary init if (cloneItems == null) { cloneItems = new Dictionary <ItemType, GameObject>(); } if (cloneItems.ContainsKey(item.itemType)) { // Delete the actual GameObject and Add the new GameObject Destroy(cloneItems[item.itemType]); cloneItems.Remove(item.itemType); } cloneItems.Add(item.itemType, Instantiate(item.equpmentPrefab, itemTransform.position, itemTransform.rotation, itemTransform)); } else { Debug.LogError("(CarEquipment) Can't found the item prefab"); } }