Esempio n. 1
0
 private void CreateCacheModel(string equipPosition, Dictionary <string, GameObject> models)
 {
     DestroyCacheModel(equipPosition);
     if (models == null)
     {
         return;
     }
     foreach (var model in models)
     {
         EquipmentModelContainer container;
         if (!CacheEquipmentModelContainers.TryGetValue(model.Key, out container))
         {
             continue;
         }
         if (container.defaultModel != null)
         {
             container.defaultModel.SetActive(false);
         }
     }
     cacheModels[equipPosition] = models;
 }
Esempio n. 2
0
    private void DestroyCacheModel(string equipPosition)
    {
        Dictionary <string, GameObject> oldModels;

        if (!string.IsNullOrEmpty(equipPosition) && cacheModels.TryGetValue(equipPosition, out oldModels) && oldModels != null)
        {
            foreach (var model in oldModels)
            {
                Destroy(model.Value);
                EquipmentModelContainer container;
                if (!CacheEquipmentModelContainers.TryGetValue(model.Key, out container))
                {
                    continue;
                }
                if (container.defaultModel != null)
                {
                    container.defaultModel.SetActive(true);
                }
            }
            cacheModels.Remove(equipPosition);
        }
    }
Esempio n. 3
0
    public void InstantiateEquipModel(string equipPosition, EquipmentModel[] equipmentModels)
    {
        if (equipmentModels == null || equipmentModels.Length == 0)
        {
            return;
        }
        var gameInstance = GameInstance.Singleton;
        var models       = new Dictionary <string, GameObject>();

        foreach (var equipmentModel in equipmentModels)
        {
            var equipSocket = equipmentModel.equipSocket;
            var model       = equipmentModel.model;
            if (string.IsNullOrEmpty(equipSocket) || model == null)
            {
                continue;
            }
            EquipmentModelContainer container;
            if (!CacheEquipmentModelContainers.TryGetValue(equipSocket, out container))
            {
                continue;
            }
            var newModel = Instantiate(model, container.transform);
            newModel.transform.localPosition    = Vector3.zero;
            newModel.transform.localEulerAngles = Vector3.zero;
            newModel.transform.localScale       = Vector3.one;
            newModel.gameObject.SetActive(true);
            newModel.gameObject.layer = gameInstance.characterLayer;
            newModel.RemoveComponentsInChildren <Collider>(false);

            // Quaternion equipRotation = new Quaternion(equipmentModel.xRotationOffset, 0, 0, 0);
            //newModel.transform.localRotation = equipRotation;
            Debug.Log(newModel.transform.rotation);
            models.Add(equipSocket, newModel);
        }
        CreateCacheModel(equipPosition, models);
    }