Beispiel #1
0
 //ページデータを描画
 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();
     }
 }
Beispiel #2
0
 protected override void OnGUISub()
 {
     this.engine = UtageEditorToolKit.FindComponentAllInTheScene <AdvEngine>();
     if (engine == null)
     {
         UtageEditorToolKit.BoldLabel("Not found AdvEngine");
         return;
     }
     else
     {
         OnGuiCurrentScenario();
     }
 }
Beispiel #3
0
        //オーディオフォルダを取得
        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();
        }
Beispiel #5
0
        //シーン内の全てのテンプレートアセットをクローンアセットに置き換える
        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);
        }
Beispiel #8
0
        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();
            }
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        //シーン内の全てのテンプレートアセットをクローンアセットに置き換える
        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);
            }
        }
Beispiel #12
0
        //ファイルの読み込み
        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;
        }
Beispiel #13
0
        //プロジェクト内の全てのコンポーネント(プレハブと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);
        }
Beispiel #14
0
        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();
        }
Beispiel #15
0
            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);
            }
Beispiel #16
0
        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();
        }
Beispiel #17
0
        //ブックのインポート
        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);
        }
Beispiel #18
0
        // 文字数オーバー チェック
        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);
        }
Beispiel #19
0
        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);
            }
        }
Beispiel #20
0
        //新たなプロジェクトを作成
        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;
            }
        }
Beispiel #21
0
        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();
        }
Beispiel #22
0
        //宴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;
            }
        }
Beispiel #25
0
        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>();
 }