/// <summary>
        /// Script starting callback.
        /// </summary>
        void Awake()
        {
            DebugEx.Verbose("DockingGroupScript.Awake()");

            Translator.AddLanguageChangedListener(UpdateTabs);

            CreateUI();
        }
Пример #2
0
        /// <summary>
        /// Creates the content.
        /// </summary>
        /// <param name="contentTransform">Content transform.</param>
        /// <param name="width">Width of content.</param>
        /// <param name="height">Height of content.</param>
        protected override void CreateContent(Transform contentTransform, out float width, out float height)
        {
            DebugEx.VerboseFormat("AboutDialogScript.CreateContent(contentTransform = {0})", contentTransform);

            width  = WINDOW_WIDTH;
            height = WINDOW_HEIGHT;

            //***************************************************************************
            // UnityLogo GameObject
            //***************************************************************************
            #region UnityLogo GameObject
            GameObject unityLogo = new GameObject("UnityLogo");
            Utils.InitUIObject(unityLogo, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mUnityLogoTransform = unityLogo.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopLeft(mUnityLogoTransform, 123f, 46f, 6f, 14f);
            #endregion

            //===========================================================================
            // CanvasRenderer Component
            //===========================================================================
            #region CanvasRenderer Component
            unityLogo.AddComponent <CanvasRenderer>();
            #endregion

            //===========================================================================
            // Image Component
            //===========================================================================
            #region Image Component
            Image unityLogoImage = unityLogo.AddComponent <Image>();

            unityLogoImage.sprite = Assets.Windows.AboutDialog.Textures.unity.sprite;
            unityLogoImage.type   = Image.Type.Sliced;
            #endregion

            //===========================================================================
            // Button Component
            //===========================================================================
            #region Button Component
            Button unityLogoButton = unityLogo.AddComponent <Button>();

            unityLogoButton.targetGraphic = unityLogoImage;
            unityLogoButton.transition    = Selectable.Transition.None;
            unityLogoButton.onClick.AddListener(OnUnityLogoClick);
            #endregion
            #endregion

            //***************************************************************************
            // Version GameObject
            //***************************************************************************
            #region Version GameObject
            GameObject version = new GameObject("Version");
            Utils.InitUIObject(version, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mVersionTransform = version.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopStretch(mVersionTransform, 12f, 64f, 59f, 4f);
            #endregion

            //===========================================================================
            // Text Component
            //===========================================================================
            #region Text Component
            mVersionText = version.AddComponent <Text>();

            Assets.Windows.AboutDialog.TextStyles.version.Apply(mVersionText);
            #endregion
            #endregion

            //***************************************************************************
            // Credits GameObject
            //***************************************************************************
            #region Credits GameObject
            GameObject credits = new GameObject("Credits");
            Utils.InitUIObject(credits, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mCreditsTransform = credits.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopStretch(mCreditsTransform, 120f, 87f, 7f, 7f);
            #endregion

            //***************************************************************************
            // Contents GameObject
            //***************************************************************************
            #region Contents GameObject
            GameObject contents = new GameObject("Contents");
            Utils.InitUIObject(contents, credits.transform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mContentsTransform = contents.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopStretch(mContentsTransform, 1600f, 0f, 0f, 0f, 0.5f, 1f);
            #endregion

            //***************************************************************************
            // CreditsText GameObject
            //***************************************************************************
            #region CreditsText GameObject
            GameObject creditsTextObject = new GameObject("CreditsText");
            Utils.InitUIObject(creditsTextObject, contents.transform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mCreditsTextTransform = creditsTextObject.AddComponent <RectTransform>();
            Utils.AlignRectTransformStretchStretch(mCreditsTextTransform, 0f, 120f, 0f, 120f);
            #endregion

            //===========================================================================
            // Text Component
            //===========================================================================
            #region Text Component
            mCreditsText = creditsTextObject.AddComponent <Text>();

            Assets.Windows.AboutDialog.TextStyles.credits.Apply(mCreditsText);

            mCreditsText.text = CREDITS + "\n" + SPECIAL_THANKS;
            #endregion
            #endregion
            #endregion

            //===========================================================================
            // ScrollRect Component
            //===========================================================================
            #region ScrollRect Component
            mCreditsScrollRect = credits.AddComponent <ScrollRect>();

            mCreditsScrollRect.content    = mContentsTransform;
            mCreditsScrollRect.horizontal = false;
            #endregion

            //===========================================================================
            // CanvasRenderer Component
            //===========================================================================
            #region CanvasRenderer Component
            credits.AddComponent <CanvasRenderer>();
            #endregion

            //===========================================================================
            // Image Component
            //===========================================================================
            #region Image Component
            Image creditsImage = credits.AddComponent <Image>();

            creditsImage.color = backgroundColor;
            #endregion

            //===========================================================================
            // Mask Component
            //===========================================================================
            #region Mask Component
            credits.AddComponent <Mask>();
            #endregion

            //===========================================================================
            // EventTrigger Component
            //===========================================================================
            #region EventTrigger Component
            EventTrigger creditsEventTrigger = credits.AddComponent <EventTrigger>();

            creditsEventTrigger.triggers = new List <EventTrigger.Entry>();

            EventTrigger.Entry beginDragEvent = new EventTrigger.Entry();
            beginDragEvent.eventID = EventTriggerType.BeginDrag;
            beginDragEvent.callback.AddListener(OnCreditsBeginDrag);
            creditsEventTrigger.triggers.Add(beginDragEvent);

            EventTrigger.Entry endDragEvent = new EventTrigger.Entry();
            endDragEvent.eventID = EventTriggerType.EndDrag;
            endDragEvent.callback.AddListener(OnCreditsEndDrag);
            creditsEventTrigger.triggers.Add(endDragEvent);
            #endregion
            #endregion

            //***************************************************************************
            // MonoLogo GameObject
            //***************************************************************************
            #region MonoLogo GameObject
            GameObject monoLogo = new GameObject("MonoLogo");
            Utils.InitUIObject(monoLogo, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mMonoLogoTransform = monoLogo.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopLeft(mMonoLogoTransform, 57f, 69f, 9f, 215f);
            #endregion

            //===========================================================================
            // CanvasRenderer Component
            //===========================================================================
            #region CanvasRenderer Component
            monoLogo.AddComponent <CanvasRenderer>();
            #endregion

            //===========================================================================
            // Image Component
            //===========================================================================
            #region Image Component
            Image monoLogoImage = monoLogo.AddComponent <Image>();

            monoLogoImage.sprite = Assets.Windows.AboutDialog.Textures.mono.sprite;
            monoLogoImage.type   = Image.Type.Sliced;
            #endregion
            #endregion

            //***************************************************************************
            // MonoLogoText GameObject
            //***************************************************************************
            #region MonoLogoText GameObject
            GameObject monoLogoTextObject = new GameObject("MonoLogoText");
            Utils.InitUIObject(monoLogoTextObject, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mMonoLogoTextTransform = monoLogoTextObject.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopLeft(mMonoLogoTextTransform, 200f, 30f, 73f, 217f);
            #endregion

            //===========================================================================
            // Text Component
            //===========================================================================
            #region Text Component
            mMonoLogoText = monoLogoTextObject.AddComponent <Text>();

            Assets.Windows.AboutDialog.TextStyles.monoLogo.Apply(mMonoLogoText);

            if (state == WindowState.FullScreen)
            {
                mMonoLogoText.text = SCRIPTING_POWERED_BY;
            }
            #endregion
            #endregion

            //***************************************************************************
            // MonoLogoText2 GameObject
            //***************************************************************************
            #region MonoLogoText2 GameObject
            GameObject monoLogoTextObject2 = new GameObject("MonoLogoText2");
            Utils.InitUIObject(monoLogoTextObject2, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mMonoLogoTextTransform2 = monoLogoTextObject2.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopLeft(mMonoLogoTextTransform2, 200f, 30f, 73f, 249f);
            #endregion

            //===========================================================================
            // Text Component
            //===========================================================================
            #region Text Component
            mMonoLogoText2 = monoLogoTextObject2.AddComponent <Text>();

            Assets.Windows.AboutDialog.TextStyles.monoLogo2.Apply(mMonoLogoText2);
            #endregion
            #endregion

            //***************************************************************************
            // PhysXLogo GameObject
            //***************************************************************************
            #region PhysXLogo GameObject
            GameObject physXLogo = new GameObject("PhysXLogo");
            Utils.InitUIObject(physXLogo, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mPhysXLogoTransform = physXLogo.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopLeft(mPhysXLogoTransform, 120f, 42f, 276f, 215f);
            #endregion

            //===========================================================================
            // CanvasRenderer Component
            //===========================================================================
            #region CanvasRenderer Component
            physXLogo.AddComponent <CanvasRenderer>();
            #endregion

            //===========================================================================
            // Image Component
            //===========================================================================
            #region Image Component
            Image physXLogoImage = physXLogo.AddComponent <Image>();

            physXLogoImage.sprite = Assets.Windows.AboutDialog.Textures.physX.sprite;
            physXLogoImage.type   = Image.Type.Sliced;
            #endregion
            #endregion

            //***************************************************************************
            // PhysXLogoText GameObject
            //***************************************************************************
            #region PhysXLogoText GameObject
            GameObject physXLogoTextObject = new GameObject("PhysXLogoText");
            Utils.InitUIObject(physXLogoTextObject, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mPhysXLogoTextTransform = physXLogoTextObject.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopLeft(mPhysXLogoTextTransform, 165f, 30f, 405f, 217f);
            #endregion

            //===========================================================================
            // Text Component
            //===========================================================================
            #region Text Component
            mPhysXLogoText = physXLogoTextObject.AddComponent <Text>();

            Assets.Windows.AboutDialog.TextStyles.physXLogo.Apply(mPhysXLogoText);

            if (state == WindowState.FullScreen)
            {
                mPhysXLogoText.text = PHYSICS_POWERED_BY;
            }
            #endregion
            #endregion

            //***************************************************************************
            // PhysXLogoText2 GameObject
            //***************************************************************************
            #region PhysXLogoText2 GameObject
            GameObject physXLogoTextObject2 = new GameObject("PhysXLogoText2");
            Utils.InitUIObject(physXLogoTextObject2, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mPhysXLogoTextTransform2 = physXLogoTextObject2.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopLeft(mPhysXLogoTextTransform2, 165f, 30f, 405f, 249f);
            #endregion

            //===========================================================================
            // Text Component
            //===========================================================================
            #region Text Component
            mPhysXLogoText2 = physXLogoTextObject2.AddComponent <Text>();

            Assets.Windows.AboutDialog.TextStyles.physXLogo2.Apply(mPhysXLogoText2);
            #endregion
            #endregion

            //***************************************************************************
            // Copyright GameObject
            //***************************************************************************
            #region Copyright GameObject
            GameObject copyright = new GameObject("Copyright");
            Utils.InitUIObject(copyright, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mCopyrightTransform = copyright.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopLeft(mCopyrightTransform, 280f, 30f, 8f, 302f);
            #endregion

            //===========================================================================
            // Text Component
            //===========================================================================
            #region Text Component
            mCopyrightText = copyright.AddComponent <Text>();

            Assets.Windows.AboutDialog.TextStyles.copyright.Apply(mCopyrightText);
            #endregion
            #endregion

            //***************************************************************************
            // License GameObject
            //***************************************************************************
            #region License GameObject
            GameObject license = new GameObject("License");
            Utils.InitUIObject(license, contentTransform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mLicenseTransform = license.AddComponent <RectTransform>();
            Utils.AlignRectTransformTopLeft(mLicenseTransform, 270f, 40f, 295f, 292f);
            #endregion

            //===========================================================================
            // Text Component
            //===========================================================================
            #region Text Component
            mLicenseText = license.AddComponent <Text>();

            Assets.Windows.AboutDialog.TextStyles.license.Apply(mLicenseText);
            #endregion
            #endregion

            EscapeButtonListenerScript.PushHandlerToTop(this);
            Translator.AddLanguageChangedListener(OnLanguageChanged);
            OnLanguageChanged();

            if (state != WindowState.FullScreen)
            {
                Load(WINDOW_KEY);
            }
        }
Пример #3
0
        /// <summary>
        /// Creates user interface.
        /// </summary>
        private void CreateUI()
        {
            DebugEx.Verbose("MainMenuUI.CreateUI()");

            //***************************************************************************
            // ScrollArea GameObject
            //***************************************************************************
            #region ScrollArea GameObject
            GameObject scrollArea = new GameObject("ScrollArea");
            Utils.InitUIObject(scrollArea, mScript.transform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            RectTransform scrollAreaTransform = scrollArea.AddComponent <RectTransform>();
            Utils.AlignRectTransformStretchStretch(scrollAreaTransform);
            #endregion

            //***************************************************************************
            // Content GameObject
            //***************************************************************************
            #region Content GameObject
            mScrollAreaContent = new GameObject("Content");
            Utils.InitUIObject(mScrollAreaContent, scrollArea.transform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            mScrollAreaContentTransform = mScrollAreaContent.AddComponent <RectTransform>();
            #endregion

            float contentWidth = 0f;

            //===========================================================================
            // Fill content
            //===========================================================================
            #region Fill content
            // Create menu item buttons
            foreach (TreeNode <CustomMenuItem> menuItem in mItems.children)
            {
                if (menuItem.data.visible)
                {
                    if (menuItem.data is MenuItem)
                    {
                        MenuItem item = menuItem.data as MenuItem;

                        //***************************************************************************
                        // Button GameObject
                        //***************************************************************************
                        #region Button GameObject
                        GameObject menuItemButton = new GameObject(item.name);
                        Utils.InitUIObject(menuItemButton, mScrollAreaContent.transform);

                        //===========================================================================
                        // RectTransform Component
                        //===========================================================================
                        #region RectTransform Component
                        RectTransform menuItemButtonTransform = menuItemButton.AddComponent <RectTransform>();
                        #endregion

                        //===========================================================================
                        // CanvasRenderer Component
                        //===========================================================================
                        #region CanvasRenderer Component
                        menuItemButton.AddComponent <CanvasRenderer>();
                        #endregion

                        //===========================================================================
                        // Image Component
                        //===========================================================================
                        #region Image Component
                        Image menuItemButtonImage = menuItemButton.AddComponent <Image>();

                        menuItemButtonImage.sprite = Assets.Windows.MainWindow.MainMenu.Textures.button.sprite;
                        menuItemButtonImage.type   = Image.Type.Sliced;
                        #endregion

                        //===========================================================================
                        // Button Component
                        //===========================================================================
                        #region Button Component
                        Button menuItemButtonButton = menuItemButton.AddComponent <Button>();

                        menuItemButtonButton.targetGraphic = menuItemButtonImage;
                        menuItemButtonButton.transition    = Selectable.Transition.SpriteSwap;
                        menuItemButtonButton.spriteState   = Assets.Windows.MainWindow.MainMenu.SpriteStates.button.spriteState;

                        if (item.enabled)
                        {
                            menuItemButtonButton.onClick.AddListener(item.onClick);
                        }
                        #endregion

                        //===========================================================================
                        // AutoPopupItemScript Component
                        //===========================================================================
                        #region AutoPopupItemScript Component
                        AutoPopupItemScript menuItemButtonAutoPopup = menuItemButton.AddComponent <AutoPopupItemScript>();

                        menuItemButtonAutoPopup.delay = AUTO_POPUP_DELAY;
                        #endregion
                        #endregion

                        //***************************************************************************
                        // Text GameObject
                        //***************************************************************************
                        #region Text GameObject
                        GameObject menuItemText = new GameObject("Text");
                        Utils.InitUIObject(menuItemText, menuItemButton.transform);

                        //===========================================================================
                        // RectTransform Component
                        //===========================================================================
                        #region RectTransform Component
                        RectTransform menuItemTextTransform = menuItemText.AddComponent <RectTransform>();
                        Utils.AlignRectTransformStretchStretch(menuItemTextTransform);
                        #endregion

                        //===========================================================================
                        // Text Component
                        //===========================================================================
                        #region Text Component
                        Text menuItemTextText = menuItemText.AddComponent <Text>();

                        Assets.Windows.MainWindow.MainMenu.TextStyles.button.Apply(menuItemTextText);

                        menuItemTextText.text = item.text;
                        #endregion
                        #endregion

                        ++contentWidth;

                        float buttonWidth = menuItemTextText.preferredWidth + 12;

                        Utils.AlignRectTransformStretchLeft(menuItemButtonTransform, buttonWidth, contentWidth, 1, 1);

                        contentWidth += buttonWidth + 1;
                    }
                    else
                    {
                        DebugEx.Error("Unknown menu item type");
                    }
                }
            }
            #endregion

            Utils.AlignRectTransformStretchLeft(mScrollAreaContentTransform, contentWidth, 0f, 0f, 0f, 0f, 0.5f);
            #endregion

            //===========================================================================
            // ScrollRect Component
            //===========================================================================
            #region ScrollRect Component
            ScrollRect scrollAreaScrollRect = scrollArea.AddComponent <ScrollRect>();

            scrollAreaScrollRect.content  = mScrollAreaContentTransform;
            scrollAreaScrollRect.vertical = false;
            #endregion

            //===========================================================================
            // CanvasRenderer Component
            //===========================================================================
            #region CanvasRenderer Component
            scrollArea.AddComponent <CanvasRenderer>();
            #endregion

            //===========================================================================
            // Image Component
            //===========================================================================
            #region Image Component
            Image scrollAreaImage = scrollArea.AddComponent <Image>();

            scrollAreaImage.sprite = Assets.Windows.MainWindow.MainMenu.Textures.background.sprite;
            scrollAreaImage.type   = Image.Type.Sliced;
            #endregion

            //===========================================================================
            // Mask Component
            //===========================================================================
            #region Mask Component
            scrollArea.AddComponent <Mask>();
            #endregion
            #endregion

            Translator.AddLanguageChangedListener(OnLanguageChanged);
        }
        /// <summary>
        /// Show this toast.
        /// </summary>
        public void Show()
        {
            DebugEx.Verbose("ToastScript.Show()");

            //===========================================================================
            // CanvasRenderer Component
            //===========================================================================
            #region CanvasRenderer Component
            gameObject.AddComponent <CanvasRenderer>();
            #endregion

            //===========================================================================
            // Image Component
            //===========================================================================
            #region Image Component
            Image toastImage = gameObject.AddComponent <Image>();

            toastImage.sprite = Assets.Common.Toasts.Textures.toastBackground.sprite;
            toastImage.type   = Image.Type.Sliced;
            #endregion

            //===========================================================================
            // Image CanvasGroup
            //===========================================================================
            #region CanvasGroup Component
            mToastCanvasGroup = gameObject.AddComponent <CanvasGroup>();

            mToastCanvasGroup.blocksRaycasts = false;
            #endregion

            //***************************************************************************
            // ToastText GameObject
            //***************************************************************************
            #region ToastText GameObject
            GameObject toastTextObject = new GameObject("Text");
            Utils.InitUIObject(toastTextObject, transform);

            //===========================================================================
            // RectTransform Component
            //===========================================================================
            #region RectTransform Component
            RectTransform toastTextTransform = toastTextObject.AddComponent <RectTransform>();
            Utils.AlignRectTransformStretchStretch(
                toastTextTransform
                , toastImage.sprite.border.x
                , toastImage.sprite.border.w
                , toastImage.sprite.border.z
                , toastImage.sprite.border.y
                );
            #endregion

            //===========================================================================
            // Text Component
            //===========================================================================
            #region Text Component
            mToastText = toastTextObject.AddComponent <Text>();

            Assets.Common.Toasts.TextStyles.toastText.Apply(mToastText);

            if (tokenId != R.sections.Toasts.strings.Count)
            {
                Translator.AddLanguageChangedListener(UpdateText);
                UpdateText();
            }
            else
            {
                mToastText.text = text;
            }
            #endregion
            #endregion

            mDelay  = duration / 1000f;
            enabled = true;
        }