private void CreateAll() { _gltfQueue = new List <CreateObjectModel>(); foreach (CreateObjectModel fileModel in _modelsList) { if (!ObjectBuildHelper.IsValidTypeName(fileModel.ObjectName)) { Debug.Log("Can't create object with class name " + fileModel.ObjectName + ": not a valid type name"); continue; } _currentStep = "Importing model from " + fileModel.Path + "..."; fileModel.Guid = Guid.NewGuid().ToString(); fileModel.LocalizedName = ObjectBuildHelper.EscapeString(fileModel.LocalizedName); fileModel.LocalizedNameRU = ObjectBuildHelper.EscapeString(fileModel.LocalizedNameRU); fileModel.ObjectFolder = "Assets/Objects/" + fileModel.ObjectName; fileModel.ModelFolder = fileModel.ObjectFolder + "/Model"; fileModel.ModelImportPath = fileModel.ModelFolder + "/" + Path.GetFileName(fileModel.Path); fileModel.PrefabPath = fileModel.ObjectFolder + "/" + fileModel.ObjectName + ".prefab"; if (Directory.Exists(fileModel.ObjectFolder)) { EditorUtility.DisplayDialog(fileModel.ObjectName + " already exists!", "Object with this name already exists", "OK"); fileModel.Skip = true; } else { Debug.Log("Create folder " + fileModel.ObjectFolder); Directory.CreateDirectory(fileModel.ObjectFolder); Directory.CreateDirectory(fileModel.ObjectFolder + "/Model"); CreateTags(fileModel); string extension = Path.GetExtension(fileModel.Path); if (extension == null) { fileModel.Skip = true; EditorUtility.DisplayDialog(fileModel.ObjectName + " can't be imported", "Unsupported file format", "OK"); continue; } if (extension.Contains("zip")) { fileModel.ModelImportPath = fileModel.ModelFolder + "/" + Path.GetFileNameWithoutExtension(fileModel.Path) + ".prefab"; ImportGLTFQueue(fileModel); } else { ImportUsualAsset(fileModel); } } } if (_gltfQueue.Count == 0) { CreateCode(); } }
private void Create() { if (_gameObject == null) { EditorUtility.DisplayDialog("Error!", "GameObject can't be null.", "OK"); return; } if (!ObjectBuildHelper.IsValidTypeName(_objectClassName, true)) { return; } _localizedName = ObjectBuildHelper.EscapeString(_localizedName); _localizedNameRU = ObjectBuildHelper.EscapeString(_localizedNameRU); CreateObjectModel model = new CreateObjectModel() { Guid = Guid.NewGuid().ToString(), ObjectName = _objectClassName.Replace(" ", ""), LocalizedName = _localizedName, LocalizedNameRU = _localizedNameRU, MobileReady = _mobileReady }; model.ObjectFolder = "Assets/Objects/" + model.ObjectName; model.PrefabPath = model.ObjectFolder + "/" + model.ObjectName + ".prefab"; if (Directory.Exists(model.ObjectFolder)) { EditorUtility.DisplayDialog(model.ObjectName + " already exists!", "Object with this name already exists!", "OK"); } else { Debug.Log("Create folder " + model.ObjectFolder); Directory.CreateDirectory(model.ObjectFolder); Debug.Log("Create prefab " + _gameObject.name); CreatePrefab(_gameObject, model.PrefabPath, model.Guid, _objectClassName, null, null, false); CreateTags(model); model.ClassName = CreateCode(model); _modelsList = new List <CreateObjectModel>(); _modelsList.Add(model); CreateObjectTempModel temp = new CreateObjectTempModel() { Objects = _modelsList, BuildNow = false }; string jsonModels = JsonConvert.SerializeObject(temp, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); File.WriteAllText(CreateObjectTempModel.TempFilePath, jsonModels); AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate); } }