GetScriptOutput() 공개 정적인 메소드

public static GetScriptOutput ( string command ) : string
command string
리턴 string
예제 #1
0
        private void BuildTree()
        {
            var rootGuid = EditorUtils.GetScriptOutput("studio.project.workspace.masterEventFolder.id");

            rootFolder      = new FolderEntry();
            rootFolder.guid = rootGuid;
            BuildTreeItem(rootFolder);
            wantsMouseMove = true;
            banks          = new List <BankEntry>();

            EditorUtils.GetScriptOutput("children = \"\";");
            EditorUtils.GetScriptOutput("func = function(val) {{ children += \",\" + val.id + val.name; }};");
            EditorUtils.GetScriptOutput("studio.project.workspace.masterBankFolder.items.forEach(func, this); ");
            string bankList = EditorUtils.GetScriptOutput("children;");

            string[] bankListSplit = bankList.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            foreach (var bank in bankListSplit)
            {
                var entry = new BankEntry();
                entry.guid = bank.Substring(0, 38);
                entry.name = bank.Substring(38);
                banks.Add(entry);
            }

            banks.Sort((a, b) => a.name.CompareTo(b.name));
        }
예제 #2
0
        public static string CreateStudioEvent(string eventPath, string eventName)
        {
            var folders = eventPath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);

            string debug;

            string folderGuid = EditorUtils.GetScriptOutput("studio.project.workspace.masterEventFolder.id;");

            for (int i = 0; i < folders.Length; i++)
            {
                string parentGuid = folderGuid;
                debug      = GetScriptOutput(String.Format("guid = \"\";"));
                debug      = GetScriptOutput(String.Format("findFunc = function(val) {{ guid = val.isOfType(\"EventFolder\") && val.name == \"{0}\" ? val.id : guid; }};", folders[i]));
                debug      = GetScriptOutput(String.Format("studio.project.lookup(\"{0}\").items.forEach(findFunc, this);", folderGuid));
                folderGuid = GetScriptOutput(String.Format("guid;"));
                if (folderGuid == "")
                {
                    debug      = GetScriptOutput(String.Format("folder = studio.project.create(\"EventFolder\");"));
                    debug      = GetScriptOutput(String.Format("folder.name = \"{0}\"", folders[i]));
                    debug      = GetScriptOutput(String.Format("folder.folder = studio.project.lookup(\"{1}\");", parentGuid));
                    folderGuid = GetScriptOutput(String.Format("folder.id;"));
                }
            }

            if (CheckForNameConflict(folderGuid, eventName))
            {
                //EditorUtility.DisplayDialog("Name Conflict", String.Format("The event {0} already exists under {1}", eventName, eventFolder), "OK");
                return(null);
            }

            debug = GetScriptOutput("event = studio.project.create(\"Event\");");
            debug = GetScriptOutput("event.note = \"Placeholder created via Unity\";");
            debug = GetScriptOutput(String.Format("event.name = \"{0}\"", eventName));
            debug = GetScriptOutput(String.Format("event.folder = studio.project.lookup(\"{0}\");", folderGuid));

            // Add a group track
            debug = GetScriptOutput("track = studio.project.create(\"GroupTrack\");");
            debug = GetScriptOutput("track.mixerGroup.output = event.mixer.masterBus;");
            debug = GetScriptOutput("track.mixerGroup.name = \"Audio 1\";");
            debug = GetScriptOutput("event.relationships.groupTracks.add(track);");

            // Add tags
            debug = GetScriptOutput("tag = studio.project.create(\"Tag\");");
            debug = GetScriptOutput("tag.name = \"placeholder\";");
            debug = GetScriptOutput("tag.folder = studio.project.workspace.masterTagFolder;");
            debug = GetScriptOutput("event.relationships.tags.add(tag);");

            string eventGuid = GetScriptOutput(String.Format("event.id;"));

            return(eventGuid);
        }
예제 #3
0
        private void CreateEventInStudio()
        {
            string eventGuid = EditorUtils.CreateStudioEvent(eventFolder, eventName);

            if (!string.IsNullOrEmpty(eventGuid))
            {
                EditorUtils.GetScriptOutput(String.Format("studio.project.lookup(\"{0}\").relationships.banks.add(studio.project.lookup(\"{1}\"));", eventGuid, banks[selectedBank].guid));
                EditorUtils.GetScriptOutput("studio.project.build();");

                string fullPath = "event:" + eventFolder + eventName;
                outputProperty.stringValue = fullPath;
                EditorUtils.UpdateParamsOnEmitter(outputProperty.serializedObject, fullPath);
                outputProperty.serializedObject.ApplyModifiedProperties();
            }
        }
예제 #4
0
        private void BuildTreeItem(FolderEntry entry)
        {
            // lookup the entry
            EditorUtils.GetScriptOutput(string.Format("cur = studio.project.lookup(\"{0}\");", entry.guid));

            // get child count
            string itemCountString = EditorUtils.GetScriptOutput("cur.items.length;");
            int    itemCount;

            Int32.TryParse(itemCountString, out itemCount);

            // iterate children looking for folder
            for (int item = 0; item < itemCount; item++)
            {
                EditorUtils.GetScriptOutput(String.Format("child = cur.items[{0}]", item));

                // check if it's a folder
                string isFolder = EditorUtils.GetScriptOutput("child.isOfExactType(\"EventFolder\")");
                if (isFolder == "false")
                {
                    continue;
                }

                // Get guid and name
                string info = EditorUtils.GetScriptOutput("child.id + child.name");

                var childEntry = new FolderEntry();
                childEntry.guid   = info.Substring(0, 38);
                childEntry.name   = info.Substring(38);
                childEntry.parent = entry;
                entry.entries.Add(childEntry);
            }

            // Recurse for child entries
            foreach (var childEntry in entry.entries)
            {
                BuildTreeItem(childEntry);
            }
        }