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; }
protected override object WriteToImpl(object obj) { RuntimeTextAsset text = (RuntimeTextAsset)base.WriteToImpl(obj); text.Text = Text; text.Ext = Ext; return(text); }
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); }
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(); } }
public ProjectAsyncOperation SaveScript(AssetItem assetItem, RuntimeTextAsset script) { return(m_project.Save(new[] { assetItem }, new[] { script })); }