Exemplo n.º 1
0
        /// <summary>
        /// Gets the resource folder.
        /// </summary>
        /// <param name="_folder">Folder.</param>
        private void GetResourceFolder(out GS.Resource.ResourceFolder _folder)
        {
            GS.Resource.ResourceFolder[] _folders = Resources.LoadAll <GS.Resource.ResourceFolder>("");
            Debug.Log("Folder count: " + _folders.Length);
            if (_folders.Length.Equals(0))
            {
                Debug.LogError("No TextFolder found!\nMake sure you have TextFolder under Assets/Resources/ directory.\nRecommended path '/Assets/Resources/~'.\n", this);
                _folder = null;
                return;
            }

            GS.Resource.ResourceFolder folder = null;
            for (int i = 0; i < _folders.Length; i++)
            {
                GS.Data.Settings.Instance.keyValues.TryGetKeyValue(keyValue, out string value);

                if (_folders[i].resource.Equals(value))
                {
                    folder = _folders[i];
                    Debug.Log("Found ResourceFolder using given KeyValue: " + keyValue);
                    break;
                }
            }
            Debug.Log("Returning ResourceFolder");
            _folder = folder;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the folder for Unity Editor.
        /// </summary>
        /// <param name="_folder">Folder.</param>
        public void GetFolderForEditor(out GS.Resource.ResourceFolder _folder)
        {
            // If player preferences has no key for language, set one.
            if (!GS.Data.Settings.Instance.keyValues.HasKey(keyValue))
            {
                GS.Data.Settings.Instance.keyValues.SetKey(keyValue, "Default");
            }

            GetResourceFolder(out GS.Resource.ResourceFolder folder);
            _folder = folder;
        }
Exemplo n.º 3
0
        private void CopyAssets()
        {
            // TODO ResourceFolderEditor Copy assets!
            var _class = target as GS.Resource.ResourceFolder;

            // Create new resource type using same ResourceFolder in same resource path.
            GS.Resource.ResourceFolder folder = (GS.Resource.ResourceFolder)ScriptableObject.CreateInstance(typeof(GS.Resource.ResourceFolder));
            folder.path        = _class.path;
            folder.resourceKey = _class.resourceKey;
            folder.resource    = _resource;

            // Create possibly missing directory.
            CreateDirectory(_resource);

            List <GS.Resource.ResourceTable> _tables = new List <GS.Resource.ResourceTable>();

            foreach (GS.Resource.ResourceTable _table in _class.tables)
            {
                // Create asset and set values
                GS.Resource.ResourceTable asset = (GS.Resource.ResourceTable)ScriptableObject.CreateInstance(_table.GetType());
                asset.name         = _table.name;
                asset.updateEvents = _table.updateEvents;
                _tables.Add(asset);

                // Create ResourceTable asset
                AssetDatabase.CreateAsset(asset, string.Format(
                                              "Assets/Resources/{0}/{1}/{2}.asset",
                                              folder.path, folder.resource,
                                              // Get old ResourceTable location, split path and cut extension off it.
                                              AssetDatabase.GetAssetPath(_table).Split('/').Last().Split('.')[0]
                                              ));
            }
            folder.tables = _tables.ToArray();

            // Get old ResourceFolder location and cut extension from it.
            string folderLocation = AssetDatabase.GetAssetPath(_class).Split('.')[0];
            int    folderCount    = AssetDatabase.FindAssets(
                string.Format("{0} t:GS.Resource.ResourceFolder", folderLocation.Split('/').Last()),
                new[] { folderLocation.Remove(folderLocation.LastIndexOfAny("/".ToCharArray())) }).Length;

            // Create ResourceFolder asset
            AssetDatabase.CreateAsset(folder, string.Format(
                                          "{0}{1}.asset", folderLocation, folderCount - 1));

            // Finalize all created assets
            AssetDatabase.SaveAssets();
            _tables.Clear();
        }