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);
        }
        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;
            }
        }