Example #1
0
        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();
            }
        }
Example #2
0
        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);
            }
        }