//ページデータを描画 void OnGuiPage(AdvScenarioPageData page) { if (page == null) { UtageEditorToolKit.BoldLabel("Not found page data"); } else { EditorGUILayout.BeginVertical(WindowStyle); page.CommandList.ForEach(x => OnGuiCommand(x)); EditorGUILayout.EndVertical(); } }
protected override void OnGUISub() { this.engine = UtageEditorToolKit.FindComponentAllInTheScene <AdvEngine>(); if (engine == null) { UtageEditorToolKit.BoldLabel("Not found AdvEngine"); return; } else { OnGuiCurrentScenario(); } }
//オーディオフォルダを取得 List <Object> LoadAudioFolders() { List <Object> assetList = new List <Object>(); string rootDir = GetProjectRelativeDir() + "/Resources/" + newProjectName + "/Sound/"; assetList.Add(UtageEditorToolKit.LoadAssetAtPath <Object>(rootDir + "Ambience")); assetList.Add(UtageEditorToolKit.LoadAssetAtPath <Object>(rootDir + "BGM")); assetList.Add(UtageEditorToolKit.LoadAssetAtPath <Object>(rootDir + "SE")); assetList.Add(UtageEditorToolKit.LoadAssetAtPath <Object>(rootDir + "Voice")); return(assetList); }
//宴2.5対応 static void VersionUpSceneToUtage25(AdvEngine engine) { if (engine.MessageWindowManager == null) { } AdvUguiManager uguiManager = UtageEditorToolKit.FindComponentAllInTheScene <AdvUguiManager>(); if (uguiManager == null) { return; } uguiManager.GetMessageWindowManagerCreateIfMissing(); }
//シーン内の全てのテンプレートアセットをクローンアセットに置き換える void ReplaceAssetsFromTemplateToCloneInSecne() { // Debug.Log(System.DateTime.Now + " プレハブインスタンスを検索"); //プレハブインスタンスを検索 List <GameObject> prefabInstanceList = new List <GameObject>(); foreach (GameObject go in UtageEditorToolKit.GetAllObjectsInScene()) { if (WrapperUnityVersion.CheckPrefabInstance(go)) { GameObject prefabInstance = WrapperUnityVersion.GetOutermostPrefabInstanceRoot(go); if (!prefabInstanceList.Contains(prefabInstance)) { prefabInstanceList.Add(prefabInstance); } } } // Debug.Log(System.DateTime.Now + " prefabInstanceList"); //プレハブインスタンスはいったん削除して、クローンプレハブからインスタンスを作って置き換える foreach (GameObject go in prefabInstanceList) { //プレハブの元となるアセットを取得 GameObject prefabAsset = WrapperUnityVersion.GetPrefabParent(go); if (prefabAsset == null) { Debug.LogError(go.name + " Not fount parent Prefab."); } //プレハブをクローンしたものと入れ替えるために、クローンプレハブでアセットを作り直す Object clonePrefabAsset; if (CloneAssetPair.TryGetValue(prefabAsset, out clonePrefabAsset)) { GameObject cloneInstance = PrefabUtility.InstantiatePrefab(clonePrefabAsset) as GameObject; cloneInstance.transform.SetParent(go.transform.parent); cloneInstance.transform.localPosition = prefabAsset.transform.localPosition; cloneInstance.transform.localRotation = prefabAsset.transform.localRotation; cloneInstance.transform.localScale = prefabAsset.transform.localScale; GameObject.DestroyImmediate(go); } else { Debug.LogError(go.name + " Not Find Clone Prefab."); } } // Debug.Log(System.DateTime.Now + "ReplaceSerializedProperties"); //オブジェクト内のコンポーネントからのリンクを全て、テンプレートからクローンに置き換える UtageEditorToolKit.ReplaceSerializedPropertiesAllComponentsInScene(CloneAssetPair); // Debug.Log(System.DateTime.Now); }
void AddToCurrentScene() { //すでにカメラがある場合は、宴関係のレイヤー設定を無効化する ChangeCameraMaskInScene(); //すでにイベントシステムがある場合は、新しいほうを削除するために UnityEngine.EventSystems.EventSystem eventSystem = UtageEditorToolKit.FindComponentAllInTheScene <UnityEngine.EventSystems.EventSystem>(); //シーンを開く string scenePath = GetSceneRelativePath(); WrapperUnityVersion.OpenSceneAdditive(scenePath); //余分なオブジェクトを削除 UtageUguiTitle title = UtageEditorToolKit.FindComponentAllInTheScene <UtageUguiTitle>(); GameObject.DestroyImmediate(title.transform.root.gameObject); SystemUi systemUi = UtageEditorToolKit.FindComponentAllInTheScene <SystemUi>(); GameObject.DestroyImmediate(systemUi.gameObject); //シーンのアセットを削除 AssetDatabase.DeleteAsset(scenePath); //「宴」エンジンの初期化 InitUtageEngine(); //エンジン休止状態に AdvEngine engine = GameObject.FindObjectOfType <AdvEngine>(); engine.gameObject.SetActive(false); ChangeLayerInCurrentScene(); //すでにイベントシステムがある場合は、新しいほうを削除する if (eventSystem != null) { UnityEngine.EventSystems.EventSystem[] eventSystems = UtageEditorToolKit.FindComponentsAllInTheScene <UnityEngine.EventSystems.EventSystem>(); foreach (var item in eventSystems) { if (item != eventSystem) { GameObject.DestroyImmediate(item.gameObject); break; } } } Selection.activeObject = AssetDatabase.LoadAssetAtPath(scenePath, typeof(Object)); FontChange(false); }
//スプライトフォルダを取得 List <Object> LoadSpriteFolders() { List <Object> assetList = new List <Object>(); string rootDir = GetProjectRelativeDir() + "/Resources/" + newProjectName + "/Texture/"; assetList.Add(UtageEditorToolKit.LoadAssetAtPath <Object>(rootDir + "BG")); assetList.Add(UtageEditorToolKit.LoadAssetAtPath <Object>(rootDir + "Character")); assetList.Add(UtageEditorToolKit.LoadAssetAtPath <Object>(rootDir + "Event")); assetList.Add(UtageEditorToolKit.LoadAssetAtPath <Object>(rootDir + "Sprite")); assetList.Add(UtageEditorToolKit.LoadAssetAtPath <Object>(rootDir + "Thumbnail")); return(assetList); }
void OnGUI() { UtageEditorToolKit.BeginGroup("Create New Project"); GUIStyle style = new GUIStyle(); GUILayout.Space(4f); GUILayout.Label("<b>" + "Input New Project Name" + "</b>", style, GUILayout.Width(80f)); newProjectName = GUILayout.TextField(newProjectName); GUILayout.Space(4f); GUILayout.Label("<b>" + "Select Create Type" + "</b>", style, GUILayout.Width(80f)); Type type = (Type)EditorGUILayout.EnumPopup("Type", createType); if (createType != type) { createType = type; } UtageEditorToolKit.EndGroup(); bool isGameSizeEnable = (createType != Type.CreateScenarioAssetOnly); EditorGUI.BeginDisabledGroup(!isGameSizeEnable); GUILayout.Space(4f); UtageEditorToolKit.BeginGroup("Game Screen Size"); int width = EditorGUILayout.IntField("Width", gameScreenWidth); if (gameScreenWidth != width && width > 0) { gameScreenWidth = width; } int height = EditorGUILayout.IntField("Hegiht", gameScreenHeight); if (gameScreenHeight != height && height > 0) { gameScreenHeight = height; } UtageEditorToolKit.EndGroup(); EditorGUI.EndDisabledGroup(); bool isProjectNameEnable = IsEnableProjcetName(newProjectName); EditorGUI.BeginDisabledGroup(!isProjectNameEnable); bool isCreate = GUILayout.Button("Create", GUILayout.Width(80f)); EditorGUI.EndDisabledGroup(); if (isCreate) { Create(); } }
public void CreateScenariosIfMissing() { if (this.scenarios != null) { return; } string path = AssetDatabase.GetAssetPath(this); path = FilePathUtil.Combine(FilePathUtil.GetDirectoryPath(path), ProjectName + ".scenarios.asset"); //設定データのアセットをロードまたは作成 this.scenarios = UtageEditorToolKit.GetImportedAssetCreateIfMissing <AdvImportScenarios>(path); this.scenarios.hideFlags = HideFlags.NotEditable; EditorUtility.SetDirty(this); }
//シーン内の全てのテンプレートアセットをクローンアセットに置き換える void ReplaceAssetsFromTemplateToCloneInSecne() { // Debug.Log(System.DateTime.Now + " プレハブインスタンスを検索"); //プレハブインスタンスを検索 List <GameObject> prefabInstanceList = new List <GameObject>(); foreach (GameObject go in UtageEditorToolKit.GetAllObjectsInScene()) { if (PrefabUtility.GetPrefabType(go) == PrefabType.PrefabInstance) { GameObject prefabInstance = PrefabUtility.FindRootGameObjectWithSameParentPrefab(go); if (!prefabInstanceList.Contains(prefabInstance)) { prefabInstanceList.Add(prefabInstance); } } } // Debug.Log(System.DateTime.Now + " prefabInstanceList"); //プレハブインスタンスはいったん削除して、クローンプレハブからインスタンスを作って置き換える foreach (GameObject go in prefabInstanceList) { #if UNITY_2018_2_OR_NEWER GameObject prefabAsset = PrefabUtility.GetCorrespondingObjectFromSource(go) as GameObject; #else GameObject prefabAsset = PrefabUtility.GetPrefabParent(go) as GameObject; #endif Object clonePrefabAsset; if (cloneAssetPair.TryGetValue(prefabAsset, out clonePrefabAsset)) { GameObject cloneInstance = PrefabUtility.InstantiatePrefab(clonePrefabAsset) as GameObject; cloneInstance.transform.SetParent(go.transform.parent); cloneInstance.transform.localPosition = prefabAsset.transform.localPosition; cloneInstance.transform.localRotation = prefabAsset.transform.localRotation; cloneInstance.transform.localScale = prefabAsset.transform.localScale; GameObject.DestroyImmediate(go); } else { Debug.LogError(go.name + " Not Find Clone Prefab."); } } // Debug.Log(System.DateTime.Now + "ReplaceSerializedProperties"); //オブジェクト内のコンポーネントからのリンクを全て、テンプレートからクローンに置き換える UtageEditorToolKit.ReplaceSerializedPropertiesAllComponentsInScene(cloneAssetPair); // Debug.Log(System.DateTime.Now); }
void ChangeLayerInCurrentScene() { //レイヤー設定を変える AdvEngine engine = UtageEditorToolKit.FindComponentAllInTheScene <AdvEngine>(); SwapLayerInChildren(engine.gameObject, OldLayerName, layerName); SwapLayerInChildren(engine.gameObject, OldLayerNameUI, layerNameUI); BootCustomProjectSetting projectSetting = UtageEditorToolKit.FindComponentAllInTheScene <BootCustomProjectSetting>(); SwapLayerInChildren(projectSetting.gameObject, OldLayerNameUI, layerNameUI); foreach (Camera camera in projectSetting.GetComponentsInChildren <Camera>()) { ChangeCameraLayer(camera); } }
//ファイルの読み込み void ImportSub(AdvScenarioDataProject project) { Project = project; if (project.ChapterDataList.Count <= 0) { Debug.LogError("ChapterDataList is zeo"); return; } AssetFileManager.ClearCheckErrorInEditor(); AssetFileManager.IsEditorErrorCheck = true; AdvCommand.IsEditorErrorCheck = true; AdvCommand.IsEditorErrorCheckWaitType = project.CheckWaitType; UnityEngine.Profiling.Profiler.BeginSample("Import Scenarios"); AdvEngine engine = UtageEditorToolKit.FindComponentAllInTheScene <AdvEngine>(); if (engine != null) { engine.BootInitCustomCommand(); } this.scenarioDataTbl = new Dictionary <string, AdvScenarioData>(); this.macroManager = new AdvMacroManager(); AdvScenarioDataBuilderWindow.ProjectData.CreateScenariosIfMissing(); this.scenariosAsset = project.Scenarios; this.scenariosAsset.ClearOnImport(); //チャプターデータのインポート project.ChapterDataList.ForEach(x => ImportChapter(x.chapterName, x.ExcelPathList)); //ファイルが存在しているかチェック if (project.RecourceDir != null) { string path = new MainAssetInfo(project.RecourceDir).FullPath; AssetFileManager.CheckErrorInEditor(path, project.CheckExt); } UnityEngine.Profiling.Profiler.EndSample(); EditorUtility.SetDirty(this.scenariosAsset); AssetDatabase.Refresh(); AdvCommand.IsEditorErrorCheck = false; AdvCommand.IsEditorErrorCheckWaitType = false; AssetFileManager.IsEditorErrorCheck = false; }
//プロジェクト内の全てのコンポーネント(プレハブとScriptableObject)のうち、指定のアセットを参照しているものを取得 internal static List <Object> FindReferencesAssetsInProject(string dir, Object srcAsset) { List <Object> references = new List <Object>(); List <string> pathList = UtageEditorToolKit.GetAllAssetPathList(dir); foreach (string assetpath in pathList) { if (Path.GetExtension(assetpath) == ".unity") { continue; } foreach (Object obj in AssetDatabase.LoadAllAssetsAtPath(assetpath)) { if (obj == null) { continue; } if (PrefabUtility.GetPrefabType(obj) == PrefabType.Prefab) { //プレハブの場合 GameObject go = obj as GameObject; if (go == null) { continue; } foreach (Component component in go.GetComponentsInChildren <Component>(true)) { if (ContainsReferenceObject(new SerializedObject(component), srcAsset)) { references.Add(component); } } } else if (UtageEditorToolKit.IsScriptableObject(obj)) { //ScriptableObjectの場合 if (ContainsReferenceObject(new SerializedObject(obj), srcAsset)) { references.Add(obj); } } } } return(references); }
public void DrawNode2DProperties() { Node2D obj = target as Node2D; UtageEditorToolKit.BeginGroup("Node2D"); //色 UtageEditorToolKit.BeginGroup("Color"); UtageEditorToolKit.PropertyField(serializedObject, "isLinkColor", "Link parent"); UtageEditorToolKit.PropertyField(serializedObject, "localColor", "Color"); UtageEditorToolKit.EndGroup(); //ソートデータの設定 UtageEditorToolKit.BeginGroup("Sort"); UtageEditorToolKit.PropertyField(serializedObject, "isLinkSorting2D", "Link parent"); // UtageEditorToolKit.PropertyField(serializedObject, "sortData", "Data prefab"); //値キーのポップアップ表示 Node2DSortData.DictionarySortData2D dic = Node2DSortData.Instance.Dictionary; List <string> items = new List <string>(); items.Add(Node2DSortData.KeyNone); foreach (Node2DSortData.DictionaryKeyValueSortData2D keyValue in dic.List) { items.Add(keyValue.Key); } int currentIndex = items.FindIndex(item => (item == obj.SortKey)); int index = EditorGUILayout.Popup(currentIndex, items.ToArray()); if (index != currentIndex) { Undo.RecordObject(obj, "DefineZ Change"); obj.SortKey = items[index]; EditorUtility.SetDirty(target); } //描画レイヤー・描画順 EditorGUI.BeginDisabledGroup(!obj.IsEmptySortData); UtageEditorToolKit.PropertyField(serializedObject, "localSortingLayer", "Sorting Layer"); UtageEditorToolKit.PropertyField(serializedObject, "localOrderInLayer", "Order in Layer"); EditorGUILayout.LabelField("Z", "" + obj.CachedTransform.localPosition.z); EditorGUI.EndDisabledGroup(); UtageEditorToolKit.EndGroup(); UtageEditorToolKit.EndGroup(); }
void Build(MainAssetInfo textureDir, MainAssetInfo output1, MainAssetInfo output2, bool isRebuild) { //スクリプタブルオブジェクトの取得(なければ作成) string name = textureDir.Asset.name; DicingTextures dicingAsset = UtageEditorToolKit.GetImportedAssetCreateIfMissing <DicingTextures>(FilePathUtil.Combine(output1.AssetPath, name + ".asset")); Object outPutDir = UtageEditorToolKit.GetFolderAssetCreateIfMissing(output2.AssetPath, name); //情報を設定 dicingAsset.InputDir = textureDir.Asset; dicingAsset.OutputDir = outPutDir; if (dicingAsset.InputDir == null || dicingAsset.OutputDir == null) { Debug.LogError("Folder is not found"); return; } //パッキング処理 DicingTexturePacker.Pack(dicingAsset, isRebuild); }
void DrawProperties() { CameraManager obj = target as CameraManager; UtageEditorToolKit.PropertyFieldArray(serializedObject, "cameras2D", "Cameras 2D"); UtageEditorToolKit.PropertyField(serializedObject, "pixelsToUnits", "Pixels To Units"); UtageEditorToolKit.PropertyFieldArray(serializedObject, "cameras3D", "Cameras 3D"); UtageEditorToolKit.PropertyFieldArray(serializedObject, "canvases", "UI Canvases"); //画面サイズ UtageEditorToolKit.BeginGroup("Game Screen size"); UtageEditorToolKit.PropertyField(serializedObject, "defaultHeight", "Default Height"); //縦長アスペクト比 UtageEditorToolKit.BeginGroup("Nallow"); UtageEditorToolKit.PropertyField(serializedObject, "nallowAspect", "Aspect"); if (obj.NallowAspect == CameraManager.ASPECT.Custom) { UtageEditorToolKit.PropertyField(serializedObject, "customNallowAspect", "Custom Aspect"); } UtageEditorToolKit.EndGroup(); //基本アスペクト比 UtageEditorToolKit.BeginGroup("Default"); UtageEditorToolKit.PropertyField(serializedObject, "defaultAspect", "Aspect"); if (obj.DefaultAspect == CameraManager.ASPECT.Custom) { UtageEditorToolKit.PropertyField(serializedObject, "customDefaultAspect", "Custom Aspect"); } UtageEditorToolKit.EndGroup(); //横長アスペクト比 UtageEditorToolKit.BeginGroup("Wide"); UtageEditorToolKit.PropertyField(serializedObject, "wideAspect", "Aspect"); if (obj.WideAspect == CameraManager.ASPECT.Custom) { UtageEditorToolKit.PropertyField(serializedObject, "customWideAspect", "Custom Aspect"); } UtageEditorToolKit.EndGroup(); UtageEditorToolKit.PropertyFieldArray(serializedObject, "isAnchorBottom", "Is Anchor Bottom"); UtageEditorToolKit.EndGroup(); }
//ブックのインポート AdvImportBook ImportBook(StringGridDictionary book, string path) { //シナリオデータ用のスクリプタブルオブジェクトを宣言 string bookAssetPath = Path.ChangeExtension(path, BookAssetExt); AdvImportBook asset = UtageEditorToolKit.GetImportedAssetCreateIfMissing <AdvImportBook>(bookAssetPath); asset.hideFlags = HideFlags.NotEditable; asset.Clear(); foreach (var sheet in book.List) { asset.AddData(sheet.Grid); } //変更を反映 Debug.Log(LanguageAdvErrorMsg.LocalizeTextFormat(AdvErrorMsg.Import, bookAssetPath)); EditorUtility.SetDirty(asset); return(asset); }
// 文字数オーバー チェック internal bool TryCheckCharacterCount(List <AdvScenarioData> scenarioList, out int count) { count = 0; AdvEngine engine = UtageEditorToolKit.FindComponentAllInTheScene <AdvEngine>(); if (engine == null) { return(false); } AdvUguiManager uguiManager = UtageEditorToolKit.FindComponentAllInTheScene <AdvUguiManager>(); if (uguiManager == null) { return(false); } bool isActive = uguiManager.gameObject.activeSelf; if (!isActive) { uguiManager.gameObject.SetActive(true); // UguiLetterBoxCanvasScaler scaler = uguiManager.GetComponent<UguiLetterBoxCanvasScaler>(); // if (scaler != null) scaler.SetLayoutHorizontal(); } AdvUguiMessageWindow[] messageWindows = uguiManager.GetComponentsInChildren <AdvUguiMessageWindow>(true); Dictionary <string, AdvUguiMessageWindow> windows = new Dictionary <string, AdvUguiMessageWindow>(); foreach (var window in messageWindows) { windows.Add(window.name, window); } foreach (AdvScenarioData data in scenarioList) { count += data.EditorCheckCharacterCount(engine, windows); } if (!isActive) { uguiManager.gameObject.SetActive(false); } return(true); }
internal bool CheckAutoImportType() { switch (autoImportType) { case AutoImportType.None: return(false); case AutoImportType.OnUtageScene: if (UtageEditorToolKit.FindComponentAllInTheScene <AdvEngine>() == null) { return(false); } return(true); case AutoImportType.Always: default: return(true); } }
//新たなプロジェクトを作成 void Create() { switch (createType) { case Type.CreateNewAdvScene: if (!EditorApplication.SaveCurrentSceneIfUserWantsTo()) { return; } break; default: break; } //テンプレートをコピー CopyTemplate(); string dir = ToProjectDirPath(newProjectName); //プロジェクトファイルを作成 string path = FileUtil.GetProjectRelativePath(dir + newProjectName + ".project.asset"); AdvScenarioDataProject ProjectData = UtageEditorToolKit.CreateNewUniqueAsset <AdvScenarioDataProject>(path); //プロジェクトにエクセルファイルを設定 ProjectData.AddExcelAsset(UtageEditorToolKit.LoadAssetAtPath <Object>(GetExcelRelativePath())); //プロジェクトファイルを設定してインポート AdvScenarioDataBuilderWindow.ProjectData = ProjectData; AdvScenarioDataBuilderWindow.Import(); switch (createType) { case Type.CreateNewAdvScene: //ADV用新規シーンを作成 CreateNewAdvScene(); break; case Type.AddToCurrentScene: //テンプレートシーンをコピー AddToCurrentScene(); break; } }
void DrawProperties() { AdvEngineStarter obj = target as AdvEngineStarter; UtageEditorToolKit.PropertyField(serializedObject, "engine", "Engine"); UtageEditorToolKit.PropertyField(serializedObject, "isLoadOnAwake", "Is Load On Awake"); UtageEditorToolKit.PropertyField(serializedObject, "isAutomaticPlay", "Is Automatic Play"); UtageEditorToolKit.PropertyField(serializedObject, "startScenario", "Start Scenario Label"); //シナリオデータ UtageEditorToolKit.BeginGroup("Scenario Data"); UtageEditorToolKit.PropertyField(serializedObject, "scenarioDataLoadType", "LoadType"); switch (obj.ScenarioDataLoadType) { case AdvEngineStarter.LoadType.Local: UtageEditorToolKit.PropertyField(serializedObject, "settingDataManager", "Setting Data Manager"); UtageEditorToolKit.PropertyFieldArray(serializedObject, "exportedScenarioDataTbl", "Exported Scenario Data Tbl"); break; case AdvEngineStarter.LoadType.Server: UtageEditorToolKit.PropertyField(serializedObject, "urlScenarioData", "URL Scenario Data"); UtageEditorToolKit.PropertyField(serializedObject, "scenarioVersion", "Boot File Version"); break; } UtageEditorToolKit.EndGroup(); //リソースデータ UtageEditorToolKit.BeginGroup("Resource Data"); UtageEditorToolKit.PropertyField(serializedObject, "resourceLoadType", "LoadType"); switch (obj.ResourceLoadType) { case AdvEngineStarter.LoadType.Local: UtageEditorToolKit.PropertyField(serializedObject, "rootResourceDir", "Root Dir"); break; case AdvEngineStarter.LoadType.Server: UtageEditorToolKit.PropertyField(serializedObject, "urlResourceDir", "URL Resource Dir"); break; } UtageEditorToolKit.EndGroup(); }
//宴2.5対応 static bool CheckVersionUpSceneToUtage25(AdvEngine engine) { AdvMessageWindowManager manager = UtageEditorToolKit.FindComponentAllInTheScene <AdvMessageWindowManager>(); if (manager == null) { return(true); } AdvUguiManager uguiManager = UtageEditorToolKit.FindComponentAllInTheScene <AdvUguiManager>(); if (uguiManager == null) { return(false); } AdvUguiMessageWindowManager mangaer = UtageEditorToolKit.FindComponentAllInTheScene <AdvUguiMessageWindowManager>(); return(mangaer == null); }
void OnGUI() { UtageEditorToolKit.BeginGroup("Game Screen Size"); CustomProjectSetting projectSetting; projectSetting = EditorGUILayout.ObjectField("Custom Project Setting", this.customProjectSetting, typeof(CustomProjectSetting), false) as CustomProjectSetting; if (this.customProjectSetting != projectSetting) { this.customProjectSetting = projectSetting; Save(); } int width = EditorGUILayout.IntField("Width", gameScreenWidth); if (gameScreenWidth != width && width > 0) { gameScreenWidth = width; Save(); } int height = EditorGUILayout.IntField("Hegiht", gameScreenHeight); if (gameScreenHeight != height && height > 0) { gameScreenHeight = height; Save(); } GUILayout.Space(4f); bool isEnable = true; EditorGUI.BeginDisabledGroup(!isEnable); if (GUILayout.Button("Create")) { CreateManagers(customProjectSetting, gameScreenWidth, gameScreenHeight); } EditorGUI.EndDisabledGroup(); UtageEditorToolKit.EndGroup(); }
void DrawNewProject() { GUIStyle style = new GUIStyle(); GUILayout.Space(4f); GUILayout.Label("<b>" + "Input New Project Name" + "</b>", style, GUILayout.Width(80f)); newProjectName = GUILayout.TextField(newProjectName); EditorGUI.BeginDisabledGroup(string.IsNullOrEmpty(newProjectName)); if (GUILayout.Button("Create", GUILayout.Width(80f))) { isOpenNewProject = false; ProjectData = UtageEditorToolKit.CreateNewUniqueAsset <AdvScenarioDataProject>(excelProjectPath + newProjectName + ".project.asset"); Selection.activeObject = ProjectData; } EditorGUI.EndDisabledGroup(); if (GUILayout.Button("Cancel", GUILayout.Width(80f))) { isOpenNewProject = false; } }
void InitUtageEngine() { //シナリオデータの設定 AdvEngine engine = GameObject.FindObjectOfType <AdvEngine>(); AdvEngineStarter starter = GameObject.FindObjectOfType <AdvEngineStarter>(); AdvSettingDataManager settingDataAsset = UtageEditorToolKit.LoadAssetAtPath <AdvSettingDataManager>(GetSettingAssetRelativePath()); AdvScenarioDataExported exportedScenarioAsset = UtageEditorToolKit.LoadAssetAtPath <AdvScenarioDataExported>(GetScenarioAssetRelativePath()); AdvScenarioDataExported[] exportedScenarioDataTbl = { exportedScenarioAsset }; starter.InitOnCreate(engine, settingDataAsset, exportedScenarioDataTbl, newProjectName); //カメラに画面サイズを設定 CameraManager cameraManager = GameObject.FindObjectOfType <CameraManager>(); cameraManager.InitOnCreate(gameScreenWidth, gameScreenHeight); //入力枠のサイズ調整 AdvInputManager inputManager = GameObject.FindObjectOfType <AdvInputManager>(); BoxCollider2D collider = inputManager.GetComponent <BoxCollider2D>(); collider.size = new Vector2(1.0f * gameScreenWidth / 100, 1.0f * gameScreenHeight / 100); }
void ChangeCameraLayer(Camera camera) { switch (camera.gameObject.name) { case "SpriteCamera": SwapLayerInChildren(camera.gameObject, OldLayerName, layerName); camera.cullingMask = LayerMask.GetMask(new string[] { layerName }); //AudioListenerが二つなら削除 AudioListener[] audioListeners = UtageEditorToolKit.FindComponentsAllInTheScene <AudioListener>(); if (audioListeners.Length > 1) { DestroyImmediate(camera.GetComponent <AudioListener>()); } break; case "UICamera": case "ClearCamera": SwapLayerInChildren(camera.gameObject, OldLayerNameUI, layerNameUI); camera.cullingMask = LayerMask.GetMask(new string[] { layerNameUI }); break; } }
void ChangeCameraMaskInScene() { //すでにカメラがある場合は、宴関係のレイヤー設定を無効化する Camera[] cameras = UtageEditorToolKit.FindComponentsAllInTheScene <Camera>(); List <string> changeLayers = new List <string>(); if (OldLayerName != layerName) { changeLayers.Add(layerName); LayerMaskEditor.TryAddLayerName(layerName); } if (OldLayerNameUI != layerNameUI) { changeLayers.Add(layerNameUI); LayerMaskEditor.TryAddLayerName(layerNameUI); } int mask = LayerMask.GetMask(changeLayers.ToArray()); foreach (Camera camera in cameras) { camera.cullingMask = camera.cullingMask & ~mask; } }
void CopyTemplate() { // FileUtil.CopyFileOrDirectory(TemplateAssetsDir, GetProjectRelativeDir() ); AssetDatabase.CopyAsset(TemplateAssetsDir, GetProjectRelativeDir()); //リフレッシュ必須 AssetDatabase.Refresh(); //Templateというファイル名をリネーム foreach (string filePath in System.IO.Directory.GetFiles(newProjectDir, "*", SearchOption.AllDirectories)) { if (Path.GetFileNameWithoutExtension(filePath) == TemplateName && Path.GetExtension(filePath) != ".meta") { string src = UtageEditorToolKit.SystemIOFullPathToAssetPath(filePath); string error = AssetDatabase.RenameAsset(src, newProjectName); if (!string.IsNullOrEmpty(error)) { Debug.LogError(src + " " + error); } } } //Templateというフォルダ名をリネーム foreach (string dirPath in System.IO.Directory.GetDirectories(newProjectDir, "*", SearchOption.AllDirectories)) { if (Path.GetFileName(dirPath) == TemplateName) { string src = UtageEditorToolKit.SystemIOFullPathToAssetPath(dirPath); string error = AssetDatabase.RenameAsset(src, newProjectName); if (!string.IsNullOrEmpty(error)) { Debug.LogError(src + " " + error); } } } //アセットの再設定 RebuildAssets(); }
static public void CreateEmojiData() { UtageEditorToolKit.CreateNewUniqueAsset <UguiNovelTextEmojiData>(); }
static public void CreateTextSettings() { UtageEditorToolKit.CreateNewUniqueAsset <UguiNovelTextSettings>(); }