Exemplo n.º 1
0
        public void CreateScript(ProjectItem folder)
        {
            string name = m_project.GetUniqueName(m_localization.GetString("ID_RTScripting_ScriptsManager_Script", "Script"), Ext, folder, true);

            string           nl     = Environment.NewLine;
            RuntimeTextAsset csFile = ScriptableObject.CreateInstance <RuntimeTextAsset>();

            csFile.name = name;
            csFile.Ext  = Ext;
            csFile.Text =
                "using System.Collections;" + nl +
                "using System.Collections.Generic;" + nl +
                "using UnityEngine;" + nl + nl +

                "public class " + name + " : MonoBehaviour" + nl +
                "{" + nl +
                "    // Start is called before the first frame update" + nl +
                "    void Start()" + nl +
                "    {" + nl +
                "    }" + nl + nl +

                "    // Update is called once per frame" + nl +
                "    void Update()" + nl +
                "    {" + nl +
                "    }" + nl +
                "}";

            IProjectFolder projectFolder = IOC.Resolve <IProjectFolder>();

            projectFolder.CreateAsset(csFile, folder);
        }
        protected virtual IEnumerator Start()
        {
            m_parentDialog = GetComponentInParent <Dialog>();
            if (m_parentDialog != null)
            {
                m_parentDialog.OkText          = "Save";
                m_parentDialog.Ok             += OnSave;
                m_parentDialog.IsOkVisible     = true;
                m_parentDialog.IsCancelVisible = true;
            }

            ProjectAsyncOperation <RuntimeTextAsset> ao = m_scriptManager.LoadScript(m_assetItem);

            yield return(ao);

            if (ao.HasError)
            {
                Debug.LogError(ao.Error);
                m_parentDialog.Close(false);
                yield break;
            }

            m_textAsset = ao.Result;
            m_text.text = m_textAsset.Text;
        }
Exemplo n.º 3
0
        protected override object WriteToImpl(object obj)
        {
            RuntimeTextAsset text = (RuntimeTextAsset)base.WriteToImpl(obj);

            text.Text = Text;
            text.Ext  = Ext;
            return(text);
        }
Exemplo n.º 4
0
        protected override void ReadFromImpl(object obj)
        {
            base.ReadFromImpl(obj);

            RuntimeTextAsset text = (RuntimeTextAsset)obj;

            Text = text.Text;
            Ext  = text.Ext;
        }
        private IEnumerator CoEndEdit()
        {
            IProject project = IOC.Resolve <IProject>();

            if (project == null)
            {
                yield break;
            }

            RuntimeTextAsset layersTextAsset = ScriptableObject.CreateInstance <RuntimeTextAsset>();

            layersTextAsset.Text = JsonUtility.ToJson(m_layersInfo);

            ProjectAsyncOperation setLayersInfoAo = project.SetValue("Battlehub.RTEditor.LayersInfo", layersTextAsset);

            yield return(setLayersInfoAo);

            if (setLayersInfoAo.HasError)
            {
                Debug.LogErrorFormat("Unable to set LayersInfo {0}", setLayersInfoAo.Error);
                yield break;
            }
        }
        private static IEnumerator CoLoadLayer(Action <LayersInfo> callback)
        {
            IProject project = IOC.Resolve <IProject>();

            if (m_loadedLayers == null || project.ProjectInfo.Name != m_currentProject)
            {
                m_currentProject = project.ProjectInfo.Name;

                ProjectAsyncOperation <RuntimeTextAsset> getLayersInfoAo = project.GetValue <RuntimeTextAsset>("Battlehub.RTEditor.LayersInfo");
                yield return(getLayersInfoAo);

                if (getLayersInfoAo.HasError)
                {
                    if (getLayersInfoAo.Error.ErrorCode != Error.E_NotFound)
                    {
                        Debug.LogErrorFormat("Unable to load LayersInfo {0}", getLayersInfoAo.Error);
                        yield break;
                    }

                    m_loadedLayers        = ScriptableObject.CreateInstance <LayersInfo>();
                    m_loadedLayers.Layers = new List <LayersInfo.Layer>
                    {
                        new LayersInfo.Layer("Default", 0),
                        new LayersInfo.Layer("Transparent FX", 1),
                        new LayersInfo.Layer("Ignore Raycast", 2),
                        new LayersInfo.Layer("Water", 4),
                        new LayersInfo.Layer("UI", 5)
                    };

                    for (int i = 10; i <= 15; ++i)
                    {
                        m_loadedLayers.Layers.Add(new LayersInfo.Layer(LayerMask.LayerToName(i), i));
                    }

                    for (int i = 25; i <= 30; ++i)
                    {
                        m_loadedLayers.Layers.Add(new LayersInfo.Layer(LayerMask.LayerToName(i), i));
                    }

                    RuntimeTextAsset layersTextAsset = ScriptableObject.CreateInstance <RuntimeTextAsset>();
                    layersTextAsset.Text = JsonUtility.ToJson(m_loadedLayers);

                    ProjectAsyncOperation setLayersInfoAo = project.SetValue("Battlehub.RTEditor.LayersInfo", layersTextAsset);
                    yield return(setLayersInfoAo);

                    if (setLayersInfoAo.HasError)
                    {
                        Debug.LogErrorFormat("Unable to set LayersInfo {0}", setLayersInfoAo.Error);
                        yield break;
                    }
                }
                else
                {
                    m_loadedLayers = ScriptableObject.CreateInstance <LayersInfo>();
                    JsonUtility.FromJsonOverwrite(getLayersInfoAo.Result.Text, m_loadedLayers);

                    foreach (LayersInfo.Layer layer in m_loadedLayers.Layers)
                    {
                        if (string.IsNullOrEmpty(layer.Name))
                        {
                            layer.Name = LayerMask.LayerToName(layer.Index);
                        }
                    }
                }
            }

            callback(m_loadedLayers);
        }
Exemplo n.º 7
0
        private IEnumerator Start()
        {
            yield return(new WaitUntil(() => m_project.IsOpened));

            yield return(new WaitWhile(() => m_editor.IsBusy));

            if (Loading != null)
            {
                Loading();
            }

            ProjectAsyncOperation <RuntimeBinaryAsset> getAssemblyAo = m_project.GetValue <RuntimeBinaryAsset>(RuntimeAssemblyKey);

            yield return(getAssemblyAo);

            if (getAssemblyAo.HasError)
            {
                if (getAssemblyAo.Error.ErrorCode != Error.E_NotFound)
                {
                    Debug.LogError(getAssemblyAo.Error);
                }
                else
                {
                    m_typeNameToGuid        = new Dictionary <string, Guid>();
                    m_runtimeTypeGuidsAsset = ScriptableObject.CreateInstance <RuntimeTextAsset>();
                }
            }
            else
            {
                ProjectAsyncOperation <RuntimeTextAsset> getGuidsAo = m_project.GetValue <RuntimeTextAsset>(RuntimeTypeGuids);
                yield return(getGuidsAo);

                if (getGuidsAo.HasError)
                {
                    Debug.LogError(getGuidsAo.Error);
                }
                else
                {
                    m_typeNameToGuid        = new Dictionary <string, Guid>();
                    m_runtimeTypeGuidsAsset = getGuidsAo.Result;

                    string xml = m_runtimeTypeGuidsAsset.Text;
                    if (!string.IsNullOrEmpty(xml))
                    {
                        RuntimeTypeGuids typeGuids = XmlUtility.FromXml <RuntimeTypeGuids>(xml);
                        foreach (RuntimeTypeGuid typeGuid in typeGuids.Guids)
                        {
                            Guid guid;
                            if (!m_typeNameToGuid.ContainsKey(typeGuid.FullName) && Guid.TryParse(typeGuid.Guid, out guid))
                            {
                                m_typeNameToGuid.Add(typeGuid.FullName, guid);
                            }
                        }
                    }

                    LoadAssembly(getAssemblyAo.Result.Data);
                }
            }

            if (Loaded != null)
            {
                Loaded();
            }
        }
Exemplo n.º 8
0
 public ProjectAsyncOperation SaveScript(AssetItem assetItem, RuntimeTextAsset script)
 {
     return(m_project.Save(new[] { assetItem }, new[] { script }));
 }