示例#1
0
        //絵文字などのグラフィックオブジェクトを作成
        internal RectTransform AddGraphicObject(RectTransform parent, UguiNovelTextGenerator generator)
        {
            if (!IsSprite)
            {
                return(null);
            }

            Sprite sprite = FindSpirte(generator);

            if (sprite)
            {
                RectTransform child = UtageToolKit.AddChildGameObjectComponent <RectTransform>(parent, sprite.name);
                child.gameObject.hideFlags = HideFlags.DontSave;
                Image image = child.gameObject.AddComponent <Image>();
                image.sprite = sprite;

                float scaleX, scaleY = 1.0f;
                scaleX = scaleY = 1.0f * FontSize / generator.EmojiData.Size;
                float w = sprite.rect.width * scaleX;
                float h = sprite.rect.height * scaleY;
                child.sizeDelta     = new Vector2(w, h);
                child.localPosition = new Vector3(PositionX + w / 2, PositionY + h / 2, 0);
                return(child);
            }
            else
            {
                return(null);
            }
        }
示例#2
0
        Sprite2D CreateSprite(AssetFile texture)
        {
            Sprite2D sprite = UtageToolKit.AddChildGameObjectComponent <Sprite2D>(this.transform, System.IO.Path.GetFileNameWithoutExtension(texture.FileName));

            sprite.SetTextureFile(texture, pixelsToUnits);
            return(sprite);
        }
示例#3
0
        void AddCharObject(Transform root, CharacterRenderInfo renderInfo, Color color, int order, int x0, int y0)
        {
            Vector2 pos = Vector2.zero;

            pos.x += x0 + renderInfo.x + GetCharacterRenderWidthOffsetX(renderInfo.fontInfo);
            pos.y += y0 + renderInfo.y + renderInfo.fontInfo.OffsetY * TextScale;
            SpriteRenderer rendrer = UtageToolKit.AddChildGameObjectComponent <SpriteRenderer>(root, "" + renderInfo.fontInfo.Char, pos / PixcelsToUnits, Vector2.one * TextScale);

            rendrer.gameObject.hideFlags = HideFlags.DontSave;
            rendrer.material             = Font.Font.material;
            rendrer.sprite           = renderInfo.fontInfo.Sprite;
            rendrer.color            = color;
            rendrer.sortingOrder     = this.OrderInLayer + order;
            rendrer.sortingLayerName = this.SortingLayer;
            if (renderInfo.fontInfo.CharInfo.flipped)
            {
                rendrer.transform.localEulerAngles = new Vector3(0, 0, 90);
            }
            else
            {
                rendrer.transform.localEulerAngles = new Vector3(180, 0, 0);
            }

            renderInfo.AddRenderObj(rendrer.gameObject);
        }
示例#4
0
        //旧バージョンとの互換性のための処理、メッセージウィンドウがなかったら作る
        public AdvUguiMessageWindowManager GetMessageWindowManagerCreateIfMissing()
        {
            AdvUguiMessageWindowManager[] managers = GetComponentsInChildren <AdvUguiMessageWindowManager>(true);
            if (managers.Length > 0)
            {
                return(managers[0]);
            }
            else
            {
                //旧バージョンとの互換性のため、なかったら作る
                AdvUguiMessageWindowManager manager = UtageToolKit.AddChildGameObjectComponent <AdvUguiMessageWindowManager>(this.transform, "MessageWindowManager");
                RectTransform rect = manager.gameObject.AddComponent <RectTransform>();
                rect.anchorMin = Vector2.zero;
                rect.anchorMax = Vector2.one;
                rect.sizeDelta = Vector2.zero;
                rect.SetAsFirstSibling();

                AdvUguiMessageWindow[] windows = GetComponentsInChildren <AdvUguiMessageWindow>(true);
                foreach (var window in windows)
                {
                    window.transform.SetParent(rect, true);
                    if (window.transform.localScale == Vector3.zero)
                    {
                        window.transform.localScale = Vector3.one;
                    }
                }
                return(manager);
            }
        }
示例#5
0
		/// <summary>
		/// 初期化
		/// </summary>
		/// <param name="setting">レイヤー設定データ</param>
		public void InitLayerSetting(AdvLayerSetting setting)
		{
			foreach (AdvLayerSettingData item in setting.List)
			{
				AdvLayer layer = UtageToolKit.AddChildGameObjectComponent<AdvLayer>(this.transform, item.Name);
				layer.Init(item, PixelsToUnits);
				layers.Add(item.Name, layer);
				if (item == setting.DefaultBGLayer)
				{
					bgLayer = layer;
				}
				//キャラクターレイヤー登録
				if (item.Type == AdvLayerSettingData.LayerType.Character)
				{
					characterLayers.Add(item.Name, layer);
					if (item == setting.DefaultCharacterLayer)
					{
						defaultCharacterLayer = layer;
					}
				}

				//スプライトレイヤー登録
				if (item.Type == AdvLayerSettingData.LayerType.Sprite)
				{
					spriteLayers.Add(item.Name, layer);
					if (item == setting.DefaultSpriteLayer)
					{
						defaultSpriteLayer = layer;
					}
				}

			}
		}
示例#6
0
        Sprite2D CreateSprite(GraphicInfoList graphic)
        {
            GraphicInfo texture = graphic.Main;
            Sprite2D    sprite  = UtageToolKit.AddChildGameObjectComponent <Sprite2D>(this.transform, FilePathUtil.GetFileNameWithoutExtension(texture.File.FileName));

            sprite.SetTextureFile(texture, PixelsToUnits);
            sprite.LocalOrderInLayer = Layer.SettingData.Order;
            return(sprite);
        }
        //指定の名前のストリームを取得。なければ作成。
        SoundStreamFade GetStreamAndCreateIfMissing(string name)
        {
            SoundStreamFade stream;

            if (!streamTbl.TryGetValue(name, out stream))
            {
                stream = UtageToolKit.AddChildGameObjectComponent <SoundStreamFade>(CachedTransform, name);
                streamTbl.Add(name, stream);
            }
            return(stream);
        }
示例#8
0
        //スプライトを名前から検索(なければ作成)
        AdvFadeSprites GetSpriteCreateIfMissing(string spriteName)
        {
            var sprite = FindSprite(spriteName);

            if (sprite == null)
            {
                sprite = UtageToolKit.AddChildGameObjectComponent <AdvFadeSprites>(this.transform, spriteName);
                sprite.Init(pixelsToUnits);
                sprite.LocalOrderInLayer = sprites.Count;
                sprites.Add(sprite);
            }
            return(sprite);
        }
示例#9
0
 //起動時の初期化
 internal AdvGraphicGroup(AdvLayerSettingData.LayerType type, AdvLayerSetting setting, AdvGraphicManager manager)
 {
     this.type = type;
     foreach (var item in setting.List)
     {
         if (item.Type == type)
         {
             AdvGraphicLayer layer = UtageToolKit.AddChildGameObjectComponent <AdvGraphicLayer>(manager.transform, item.Name);
             layer.Init(manager, item);
             layers.Add(layer);
             if (item.IsDefault)
             {
                 defaultLayer = layer;
             }
         }
     }
 }
示例#10
0
        static void CreateManagers(CustomProjectSetting customProjectSetting, int width, int height)
        {
            GameObject go = new GameObject("Manageres");

            Selection.activeGameObject = go;
            BootCustomProjectSetting cutomProjectSetting = go.AddComponent <BootCustomProjectSetting>();

            cutomProjectSetting.CustomProjectSetting = customProjectSetting;
            go.AddComponent <DontDestoryOnLoad>();

            //サウンドマネージャー
            UtageToolKit.AddChildGameObjectComponent <SoundManager>(go.transform, "SoundManager");

            //ファイルマネージャー
            AssetFileManager fileManager = UtageToolKit.AddChildGameObjectComponent <AssetFileManager>(go.transform, "FileManager");

            fileManager.FileIOManger = fileManager.gameObject.AddComponent <FileIOManager>();

            //カメラマネージャー
            CameraManager cameraManager = UtageToolKit.AddChildGameObjectComponent <CameraManager>(go.transform, "CameraManager");

            cameraManager.InitOnCreate(width, height);
            //全体画面クリア用
            Camera clearCamera = UtageToolKit.AddChildGameObjectComponent <Camera>(cameraManager.transform, "ClearCamera");

            clearCamera.depth           = -1;
            clearCamera.clearFlags      = CameraClearFlags.SolidColor;
            clearCamera.cullingMask     = 0;
            clearCamera.backgroundColor = new Color(0, 0, 0, 0);
            //2D画面用
            Camera camera2D = UtageToolKit.AddChildGameObjectComponent <Camera>(cameraManager.transform, "2DCamera");

            camera2D.clearFlags       = CameraClearFlags.Nothing;
            camera2D.orthographic     = true;
            camera2D.orthographicSize = 3;
            camera2D.cullingMask      = 1 << LayerMask.NameToLayer("Default");
            camera2D.gameObject.AddComponent <AudioListener>();
            cameraManager.AddCamera2D(camera2D);
            camera2D.gameObject.AddComponent <CameraInput2D>();

            Selection.activeGameObject = go;

            Undo.RegisterCreatedObjectUndo(go, "CreateManageres");
        }
示例#11
0
        AdvLayer AddLayer(AdvLayerSettingData data)
        {
            AdvLayer layer = UtageToolKit.AddChildGameObjectComponent <AdvLayer>(this.transform, data.Name);

            layer.Init(data, PixelsToUnits);
            layers.Add(data.Name, layer);
            //キャラクターレイヤー登録
            if (data.Type == AdvLayerSettingData.LayerType.Character)
            {
                characterLayers.Add(data.Name, layer);
            }

            //スプライトレイヤー登録
            if (data.Type == AdvLayerSettingData.LayerType.Sprite)
            {
                spriteLayers.Add(data.Name, layer);
            }
            return(layer);
        }
示例#12
0
        internal SoundStream Play(AudioClip clip, float fadeTime, float masterVolume, float volume, bool isLoop, bool isStreaming, Action callBackEnd)
        {
            if (null != next)
            {
                GameObject.Destroy(next.gameObject);
            }

            if (null == current)
            {
                current = UtageToolKit.AddChildGameObjectComponent <SoundStream>(this.transform, clip.name);
                //即時再生
                current.Play(clip, masterVolume, volume, isLoop, isStreaming, callBackEnd);
                return(current);
            }
            else
            {
                //フェードアウト後に再生
                current.FadeOut(fadeTime);
                next = UtageToolKit.AddChildGameObjectComponent <SoundStream>(this.transform, clip.name);
                next.Ready(clip, masterVolume, volume, isLoop, isStreaming, callBackEnd);
                return(next);
            }
        }
示例#13
0
        void CreateAdvEngile()
        {
            GameObject go     = new GameObject("AdvEngine");
            AdvEngine  engine = go.AddComponent <AdvEngine>();

            //レイヤーマネージャー
            AdvLayerManager layerManager       = UtageToolKit.AddChildGameObjectComponent <AdvLayerManager>(engine.transform, "LayerManager");
            Node2D          node2dLayerManager = layerManager.GetComponent <Node2D>();

            node2dLayerManager.SortKey = "LayerManager";

            //トランジションマネージャー
            AdvTransitionManager transitionManager = UtageToolKit.AddChildGameObjectComponent <AdvTransitionManager>(engine.transform, "TransitionManager");

            transitionManager.GetComponent <Node2D>().SortKey = "Transition";
            Sprite2D transtionBg = UtageToolKit.AddChildGameObjectComponent <Sprite2D>(transitionManager.transform, "Bg");

            transtionBg.Sprite   = transitionFadeBg;
            transtionBg.SizeType = Sprite2D.SpriteSizeType.StrechBoth;

            //UIマネージャー
            AdvUiManager uiManager = UtageToolKit.AddChildGameObjectComponent <AdvUiManager>(engine.transform, "UI");

            //インプットマネージャー
            AdvLegacyInputManager input = UtageToolKit.AddChildGameObjectComponent <AdvLegacyInputManager>(uiManager.transform, "InputManager");

            input.InitOnCreate(engine, 1.0f / 100 * gameScreenWidth, 1.0f / 100 * gameScreenHeight);
            input.GetComponent <Node2D>().SortKey = "InputManager";

            //メッセージウィンドウ
            float fontSize               = 30;
            float windowWidth            = msgWindowSprite.rect.width;
            float windowHeight           = msgWindowSprite.rect.height;
            AdvUiMessageWindow msgWindow = UtageToolKit.AddChildGameObjectComponent <AdvUiMessageWindow>(uiManager.transform, "MessageWindow");

            msgWindow.GetComponent <Node2D>().SortKey = "MessageWindow";
            GameObject windowRootChildren = UtageToolKit.AddChildGameObject(msgWindow.transform, "RootChildren");
            TextArea2D messageText        = UtageToolKit.AddChildGameObjectComponent <TextArea2D>(windowRootChildren.transform, "MessageText");

            messageText.Type       = TextArea2D.ViewType.Outline;
            messageText.Font       = font;
            messageText.text       = "Message";
            messageText.Size       = fontSize;
            messageText.LayoutType = TextArea2D.Layout.TopLeft;
            messageText.MaxWidth   = (int)(windowWidth - fontSize * 4);
            messageText.MaxHeight  = (int)(windowHeight - (fontSize * 2 + 50));
            messageText.transform.localPosition = new Vector3(-(float)messageText.MaxWidth / 2 / 100, (windowHeight / 2 - (fontSize + 40)) / 100, 0);
            messageText.LetterSpace             = 2;
            messageText.LineSpace         = 8;
            messageText.WordWrapType      = TextArea2D.WordWrap.Default | TextArea2D.WordWrap.JapaneseKinsoku;
            messageText.LocalOrderInLayer = 10;

            //名前表示
            TextArea2D nameText = UtageToolKit.AddChildGameObjectComponent <TextArea2D>(windowRootChildren.transform, "NameText");

            nameText.Type       = TextArea2D.ViewType.Outline;
            nameText.Font       = font;
            nameText.text       = "Name";
            nameText.Size       = 30;
            nameText.LayoutType = TextArea2D.Layout.TopLeft;
            nameText.transform.localPosition = new Vector3(-(float)messageText.MaxWidth / 2 / 100, (windowHeight / 2 - 25) / 100, 0);
            nameText.LocalOrderInLayer       = 10;

            //閉じるボタン
            if (isEnableCloseButton)
            {
                LegacyUiButton closeButton   = UtageToolKit.AddChildGameObjectComponent <LegacyUiButton>(windowRootChildren.transform, "CloseButton");
                Sprite2D       closeButtonBg = UtageToolKit.AddChildGameObjectComponent <Sprite2D>(closeButton.transform, "Bg");
                closeButtonBg.Sprite = closeButtonSprite;
                closeButton.transform.localPosition = new Vector3(((windowWidth - closeButtonSprite.rect.width) / 2 - 10) / 100, ((windowHeight - closeButtonSprite.rect.height) / 2 - 5) / 100, -0.01f);
                closeButton.Target       = msgWindow.gameObject;
                closeButton.FunctionName = "OnTapCloseWindow";
                closeButton.Se           = clickSe;
            }

            //メッセージウィンドウ背景
            Node2D   windowBgRoot = UtageToolKit.AddChildGameObjectComponent <Node2D>(windowRootChildren.transform, "WindowRoot");
            Sprite2D windowBg     = UtageToolKit.AddChildGameObjectComponent <Sprite2D>(windowBgRoot.transform, "Bg");

            windowBg.Sprite = msgWindowSprite;

            msgWindow.InitOnCreate(engine, messageText, nameText, windowRootChildren, windowBgRoot);
            msgWindow.transform.localPosition = new Vector3(0, (-gameScreenHeight + windowHeight) / 2 / 100, 0);

            //選択肢
            AdvUiSelectionManager selection = UtageToolKit.AddChildGameObjectComponent <AdvUiSelectionManager>(uiManager.transform, "Selection");

            selection.InitOnCreate(engine, selectionItemPrefab);
            selection.GetComponent <Node2D>().SortKey = "Selection";
            selection.ListView.ClipWidthPx            = Mathf.Max(gameScreenWidth / 2, gameScreenWidth - 100);
            selection.ListView.ClipHeightPx           = Mathf.Max(gameScreenHeight / 2, gameScreenHeight - 100);
            selection.ListView.Type = LegacyUiListView.LitViewType.Vertical;

            //バックログ
            AdvUiBacklogManager backLogManger = null;

            if (isEnableBackLog)
            {
                LegacyUiButton openButton = UtageToolKit.AddChildGameObjectComponent <LegacyUiButton>(windowRootChildren.transform, "BackLogButton");
                UtageToolKit.AddChildGameObjectComponent <Sprite2D>(openButton.transform, "Bg").Sprite = backLogButtonSprite;
                TextArea2D text = UtageToolKit.AddChildGameObjectComponent <TextArea2D>(openButton.transform, "Text");
                text.Font = font;
                text.text = "Log";
                text.LocalOrderInLayer             = 10;
                openButton.transform.localPosition = new Vector3(((windowWidth - backLogButtonSprite.rect.width) / 2 - closeButtonSprite.rect.width - 20) / 100, ((windowHeight - closeButtonSprite.rect.height) / 2 - 5) / 100, -0.01f);
                openButton.Target       = msgWindow.gameObject;
                openButton.FunctionName = "OnTapBackLog";
                openButton.Se           = clickSe;

                backLogManger = UtageToolKit.AddChildGameObjectComponent <AdvUiBacklogManager>(uiManager.transform, "BackLog");
                backLogManger.InitOnCreate(engine, backLogItemPrefab);
                backLogManger.GetComponent <Node2D>().SortKey = "BackLog";
                backLogManger.ListView.ClipWidthPx            = Mathf.Max(gameScreenWidth / 2, gameScreenWidth - 100);
                backLogManger.ListView.ClipHeightPx           = Mathf.Max(gameScreenHeight / 2, gameScreenHeight - 100);
                backLogManger.ListView.Type = LegacyUiListView.LitViewType.Vertical;
                backLogManger.ListView.IsRepositionReverse = true;

                Sprite2D filter = UtageToolKit.AddChildGameObjectComponent <Sprite2D>(backLogManger.transform, "filter");
                filter.Sprite     = backLogFilterSprite;
                filter.SizeType   = Sprite2D.SpriteSizeType.StrechBoth;
                filter.LocalColor = Color.black;
                filter.LocalAlpha = 0.5f;

                float    arrowY   = (float)backLogManger.ListView.ClipHeightPx / 100 / 2;
                Sprite2D minArrow = UtageToolKit.AddChildGameObjectComponent <Sprite2D>(backLogManger.transform, "MinArrow");
                minArrow.Sprite                  = backLogScrollUpArrow;
                minArrow.LocalOrderInLayer       = 30;
                minArrow.transform.localPosition = new Vector3(0, arrowY);
                backLogManger.ListView.MinArrow  = minArrow.gameObject;
                Sprite2D maxArrow = UtageToolKit.AddChildGameObjectComponent <Sprite2D>(backLogManger.transform, "MaxArrow");
                maxArrow.Sprite                     = backLogScrollUpArrow;
                maxArrow.LocalOrderInLayer          = 30;
                maxArrow.transform.localPosition    = new Vector3(0, -arrowY);
                maxArrow.transform.localEulerAngles = new Vector3(0, 0, 180);
                backLogManger.ListView.MaxArrow     = maxArrow.gameObject;

                LegacyUiButton closeButton   = UtageToolKit.AddChildGameObjectComponent <LegacyUiButton>(backLogManger.transform, "CloseButton");
                Sprite2D       closeButtonBg = UtageToolKit.AddChildGameObjectComponent <Sprite2D>(closeButton.transform, "Bg");
                closeButtonBg.Sprite = backLogCloseButtonSprite;
                closeButton.transform.localPosition = new Vector3((-1.0f * (gameScreenWidth - backLogCloseButtonSprite.rect.width) / 2 + 5) / 100, ((gameScreenHeight - backLogCloseButtonSprite.rect.height) / 2 - 5) / 100, -0.01f);
                closeButton.Target       = backLogManger.gameObject;
                closeButton.FunctionName = "OnTapBack";
                closeButton.Se           = clickSe;
                TextArea2D textClose = UtageToolKit.AddChildGameObjectComponent <TextArea2D>(closeButton.transform, "Text");
                textClose.Font = font;
                textClose.text = "";
                textClose.LocalOrderInLayer = 10;
                LegacyLocalize localize = textClose.gameObject.AddComponent <LegacyLocalize>();
                localize.Key = SystemText.Back.ToString();
            }


            engine.InitOnCreate(layerManager, transitionManager, uiManager);

            AdvLegacyUiManager legacyUiManager = uiManager as AdvLegacyUiManager;

            if (legacyUiManager != null)
            {
                legacyUiManager.InitOnCreate(engine, msgWindow, selection, backLogManger);
            }
            Selection.activeGameObject = go;
            Undo.RegisterCreatedObjectUndo(go, "CreateAdvEngile");
        }
示例#14
0
 /// <summary>
 /// 指定のコンポーネントつきのGameObjectを作成して子として追加
 /// </summary>
 /// <typeparam name="T">コンポーネントの型</typeparam>
 /// <param name="parent">親</param>
 /// <param name="name">作成する子の名前</param>
 /// <param name="localPosition">子に設定するローカル座標</param>
 /// <returns>追加済みの子</returns>
 public static T AddChildGameObjectComponent <T>(Transform parent, string name, Vector3 localPosition) where T : Component
 {
     return(UtageToolKit.AddChildGameObjectComponent <T>(parent, name, localPosition, Vector3.one));
 }