/// <summary> /// テクスチャからスプライト作成 /// 前に別のテクスチャが表示されていれば、それをフェードアウトさせる /// </summary> /// <param name="texture">テクスチャ</param> /// <param name="fadeTime">フェード時間</param> public void SetTexture(AssetFile texture, float fadeTime) { //テクスチャが同じなら、変化なし if (CurrentTexture == texture) { return; } //フェードアウト中のスプライトは消す if (fadeOutSprite != null) //destoryされたコンポーネントはnull判定になるはず・・・ { fadeOutSprite.FadeOut(0, true); fadeOutSprite = null; } //既にスプライトがあるならフェードアウトさせる if (currentSprite != null) { fadeOutSprite = currentSprite; ///表示順は手前にする fadeOutSprite.LocalOrderInLayer = fadeOutSprite.LocalOrderInLayer + 1; fadeOutSprite.FadeOut(fadeTime, true); } //テクスチャからスプライト作成 currentSprite = CreateSprite(texture); }
Sprite2D CreateSprite(AssetFile texture) { Sprite2D sprite = UtageToolKit.AddChildGameObjectComponent <Sprite2D>(this.transform, System.IO.Path.GetFileNameWithoutExtension(texture.FileName)); sprite.SetTextureFile(texture, pixelsToUnits); return(sprite); }
/// <summary> /// テクスチャからスプライト作成 /// 前に別のテクスチャが表示されていれば、それをフェードアウトさせる /// </summary> /// <param name="graphic">テクスチャ</param> /// <param name="fadeTime">フェード時間</param> public void SetTexture(GraphicInfo graphic, float fadeTime) { //テクスチャが同じなら、変化なし if (CurrentGraphicInfo == graphic) { return; } //フェードアウト中のスプライトは消す if (fadeOutSprite != null) //destoryされたコンポーネントはnull判定になるはず・・・ { fadeOutSprite.FadeOut(0, true); fadeOutSprite = null; } if (currentSprite != null) { //既にスプライトがあるならフェードアウトさせる fadeOutSprite = currentSprite; ///表示順は手前にする fadeOutSprite.LocalOrderInLayer = fadeOutSprite.LocalOrderInLayer + 1; fadeOutSprite.FadeOut(fadeTime, true); //テクスチャからスプライト作成 currentSprite = CreateSprite(graphic); } else { //新規スプライトがあるならフェードインさせる //テクスチャからスプライト作成 currentSprite = CreateSprite(graphic); currentSprite.FadeIn(fadeTime); } }
public override void DrawProperties() { Sprite2D obj = target as Sprite2D; //スプライト UtageEditorToolKit.BeginGroup("Sprite"); UtageEditorToolKit.PropertyField(serializedObject, "sprite", "Sprite"); UtageEditorToolKit.PropertyField(serializedObject, "sizeType", "Type"); bool isCustomSize = obj.SizeType != Sprite2D.SpriteSizeType.Default; if (isCustomSize) { EditorGUILayout.BeginHorizontal(); UtageEditorToolKit.PropertyField(serializedObject, "customSize", "Size"); if (GUILayout.Button("Reset", GUILayout.Width(50f))) { Undo.RecordObject(obj, "isCustomSize Change"); obj.Size = obj.BaseSize; EditorUtility.SetDirty(target); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.LabelField("Texture Size", obj.BaseSize.x + " x " + obj.BaseSize.y); UtageEditorToolKit.EndGroup(); DrawNode2DProperties(); }
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); }
/// <summary> /// セーブデータ用のバイナリ読みこみ /// </summary> /// <param name="reader">バイナリリーダー</param> public void Read(BinaryReader reader) { UtageToolKit.ReadLocalTransform(this.transform, reader); this.LocalColor = UtageToolKit.ReadColor(reader); //Tweenがある場合は、Tween情報を読み込む int tweenCount = reader.ReadInt32(); for (int i = 0; i < tweenCount; ++i) { iTweenPlayer tween = this.gameObject.AddComponent <iTweenPlayer>() as iTweenPlayer; tween.Read(reader, pixelsToUnits); } string nameCurrenTexture = reader.ReadString(); AssetFile texture = AssetFileManager.Load(nameCurrenTexture, this); currentSprite = CreateSprite(texture); texture.Unuse(this); }
/// <summary> /// テクスチャからスプライト作成 /// 前に別のテクスチャが表示されていれば、それをフェードアウトさせる /// </summary> /// <param name="graphic">テクスチャ</param> /// <param name="fadeTime">フェード時間</param> public void SetTexture(GraphicInfo graphic, float fadeTime) { //テクスチャが同じなら、変化なし if (CurrentGraphicInfo == graphic) return; //フェードアウト中のスプライトは消す if (fadeOutSprite != null) //destoryされたコンポーネントはnull判定になるはず・・・ { fadeOutSprite.FadeOut(0, true); fadeOutSprite = null; } if (currentSprite != null) { //既にスプライトがあるならフェードアウトさせる fadeOutSprite = currentSprite; ///表示順は手前にする fadeOutSprite.LocalOrderInLayer = fadeOutSprite.LocalOrderInLayer + 1; fadeOutSprite.FadeOut(fadeTime, true); //テクスチャからスプライト作成 currentSprite = CreateSprite(graphic); } else { //新規スプライトがあるならフェードインさせる //テクスチャからスプライト作成 currentSprite = CreateSprite(graphic); currentSprite.FadeIn(fadeTime); } }
/// <summary> /// コライダーのサイズを表示スプライトに合わせて設定する /// </summary> public void ResizeCollider() { Sprite2D.ResizeCollider(BoxCollider2D); BoxCollider2D.isTrigger = true; }
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"); }