Ejemplo n.º 1
0
        public KsmGuiIcon(KsmGuiBase parent, Texture2D texture, string tooltipText = null, int width = 16, int height = 16) : base(parent)
        {
            // we use a child gameobject because KsmGuiIcon can be used as a button (we need it as a child in this case)
            // we directly set its size trough anchors / sizeDelta instead of using layout components, this way it can be used
            // both standalone or as a button without having to mess with the layout component
            // We still set a min height/min size layout on the top object to make sure other objects in a group won't overlap

            GameObject icon = new GameObject("icon");

            IconTransform = icon.AddComponent <RectTransform>();
            icon.AddComponent <CanvasRenderer>();

            Image = TopObject.AddComponent <RawImage>();

            // make sure pivot is at the center
            IconTransform.pivot = new Vector2(0.5f, 0.5f);

            // set anchors to middle-center
            IconTransform.anchorMin = new Vector2(0.5f, 0.5f);
            IconTransform.anchorMax = new Vector2(0.5f, 0.5f);

            // anchor-pivot distance
            IconTransform.anchoredPosition = new Vector2(0f, 0f);

            SetIconTexture(texture, width, height);

            IconTransform.SetParentFixScale(TopTransform);

            if (tooltipText != null)
            {
                SetTooltipText(tooltipText);
            }
        }
Ejemplo n.º 2
0
        public KsmGuiToggleListElement(KsmGuiToggleList <T> parent, T toggleId, string text) : base(parent)
        {
            ToggleComponent            = TopObject.AddComponent <Toggle>();
            ToggleComponent.transition = Selectable.Transition.None;
            ToggleComponent.navigation = new Navigation()
            {
                mode = Navigation.Mode.None
            };
            ToggleComponent.isOn             = false;
            ToggleComponent.toggleTransition = Toggle.ToggleTransition.Fade;
            ToggleComponent.group            = parent.ToggleGroupComponent;

            this.parent = parent;
            parent.ChildToggles.Add(this);
            ToggleId = toggleId;
            ToggleComponent.onValueChanged.AddListener(NotifyParent);

            Image image = TopObject.AddComponent <Image>();

            image.color = KsmGuiStyle.boxColor;

            SetLayoutElement(false, false, -1, -1, -1, 14);

            KsmGuiVerticalLayout highlightImage = new KsmGuiVerticalLayout(this);
            Image bgImage = highlightImage.TopObject.AddComponent <Image>();

            bgImage.color           = KsmGuiStyle.selectedBoxColor;
            bgImage.raycastTarget   = false;
            ToggleComponent.graphic = bgImage;

            TextObject = new KsmGuiText(highlightImage, text);
            TextObject.SetLayoutElement(true);
        }
Ejemplo n.º 3
0
        public KsmGuiText(
            KsmGuiBase parent,
            string text,
            string tooltipText = null,
            TextAlignmentOptions alignement = TextAlignmentOptions.TopLeft,
            bool wordWrap = true,
            TextOverflowModes overflowMode = TextOverflowModes.Overflow
            ) : base(parent)
        {
            savedAlignement                  = alignement;
            TextComponent                    = TopObject.AddComponent <TextMeshProUGUI>();
            TextComponent.color              = KsmGuiStyle.textColor;
            TextComponent.font               = KsmGuiStyle.textFont;
            TextComponent.fontSize           = KsmGuiStyle.textSize;
            TextComponent.alignment          = alignement;
            TextComponent.enableWordWrapping = wordWrap;
            TextComponent.overflowMode       = overflowMode;
            TextComponent.text               = text;
            SetLayoutElement(true);
            //TextComponent.raycastTarget = false;

            if (tooltipText != null)
            {
                SetTooltipText(tooltipText);
            }
        }
Ejemplo n.º 4
0
 public void Setup()
 {
     this.obj = new TopObject();
     this.obj.SetSlot("Foo", "Bar");
     this.local = new LocalObject(obj);
     this.local.SetLocalSlot("a", "localvalue");
 }
Ejemplo n.º 5
0
        public HttpResponseMessage Login([FromBody] string email)
        {
            db = new DBOperationService();
            HttpResponseMessage result = null;

            try {
                var data     = db.FindUser(email);
                var saveData = new NameValueCollection();
                saveData["email"] = data.Email;
                var cookie = new CookieHeaderValue("session", saveData)
                {
                    Domain  = Request.RequestUri.Host,
                    Path    = "/",
                    Expires = DateTime.Now.AddMinutes(60)
                };
                TopObject <string> returnData = new TopObject <string>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.OK),
                    input   = email,
                    message = "登入成功"
                };
                //傳cookie+登入成功訊息
                result = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ObjectContent <TopObject <string> >(returnData, new JsonMediaTypeFormatter())
                };
                result.Headers.AddCookies(new CookieHeaderValue[] { cookie });
                return(result);
            }
            catch (EmailNotVertifyException ex) {
                TopObject <string> mesg = new TopObject <string>()
                {
                    input   = email,
                    status  = Convert.ToInt32(HttpStatusCode.Unauthorized),
                    message = msg
                };
                result = new HttpResponseMessage(HttpStatusCode.Unauthorized)
                {
                    Content = new ObjectContent <TopObject <string> >(mesg, new JsonMediaTypeFormatter())
                };
                return(result);
            }
            catch (UserNotFoundException ex) {
                TopObject <string> obj = new TopObject <string>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.NotFound),
                    input   = email,
                    message = "沒有這位使用者或Email輸入錯誤,請先註冊再登入"
                };
                //送註冊JSON訊息
                var errorData = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content = new ObjectContent <TopObject <string> >(obj, new JsonMediaTypeFormatter())
                };
                return(errorData);
            }
        }
Ejemplo n.º 6
0
        public HttpResponseMessage SignUp([FromBody] UserData userData)
        {
            //發信給使用者作信箱驗證
            email = new EmailService();
            TopObject <UserData> result;
            HttpResponseMessage  reData;

            db = new DBOperationService();
            if (!db.isEmailExist(userData.email))
            {
                User data = new User()
                {
                    Email            = userData.email,
                    location         = userData.location,
                    schoolName       = userData.schoolName,
                    identities       = userData.identity,
                    verificationCode = Guid.NewGuid().ToString().Replace("-", string.Empty),
                    isPass           = "******"
                };
                //在DB中新增一位使用者
                db.CreateUser(data);
                email.SendMail(data.Email, data.verificationCode, Request.RequestUri.ToString());
                //送出註冊成功的JSON 字串
                result = new TopObject <UserData>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.OK),
                    input   = userData,
                    message = "已寄發驗證信至您的電子郵件信箱,請先驗證您的電子郵件信箱之後再使用本系統"
                };
                reData = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ObjectContent <TopObject <UserData> >(result, new JsonMediaTypeFormatter())
                };
                return(reData);
            }
            else
            {
                result = new TopObject <UserData>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.Created),
                    input   = userData,
                    message = "此Email已經註冊過,請更換Email信箱"
                };
                reData = new HttpResponseMessage(HttpStatusCode.Created)
                {
                    Content = new ObjectContent <TopObject <UserData> >(result, new JsonMediaTypeFormatter())
                };
                return(reData);
            }
        }
Ejemplo n.º 7
0
        public KsmGuiButton
        (
            KsmGuiBase parent,
            string buttonText,
            UnityAction onClick,
            string tooltipText    = null,
            int width             = -1,
            int height            = 18,
            Texture2D iconTexture = null,
            int iconWidth         = 16,
            int iconHeight        = 16
        ) : base(parent, 2, 3, 3, 0, 0, TextAnchor.MiddleCenter)
        {
            // buttons are 18 px high and expand horizontaly in their container by default, but a fixed width can be defined in the ctor
            // in any case, SetLayoutElement can be called after to customise the button size.
            if (width <= 0)
            {
                SetLayoutElement(true, false, -1, height);
            }
            else
            {
                SetLayoutElement(false, false, width, height);
            }

            ImageComponent            = TopObject.AddComponent <Image>();
            ImageComponent.sprite     = Textures.KsmGuiSpriteBtnNormal;
            ImageComponent.type       = Image.Type.Sliced;
            ImageComponent.fillCenter = true;

            ButtonComponent             = TopObject.AddComponent <Button>();
            ButtonComponent.transition  = Selectable.Transition.SpriteSwap;
            ButtonComponent.spriteState = KsmGuiStyle.buttonSpriteSwap;
            ButtonComponent.navigation  = new Navigation()
            {
                mode = Navigation.Mode.None
            };                                                                                         // fix the transitions getting stuck

            SetButtonOnClick(onClick);

            SetIconTexture(iconTexture, iconWidth, iconHeight);

            TextObject = new KsmGuiText(this, buttonText, null, TextAlignmentOptions.Center);
            TextObject.SetLayoutElement(true);
            TextObject.TopTransform.SetParentFixScale(TopTransform);

            if (tooltipText != null)
            {
                SetTooltipText(tooltipText);
            }
        }
Ejemplo n.º 8
0
        public KsmGuiIconButton(KsmGuiBase parent, Texture2D texture, UnityAction onClick = null, string tooltipText = null, int width = 16, int height = 16)
            : base(parent, texture, tooltipText, width, height)
        {
            ButtonComponent = TopObject.AddComponent <Button>();
            ButtonComponent.targetGraphic = Image;
            ButtonComponent.interactable  = true;
            ButtonComponent.transition    = Selectable.Transition.ColorTint;
            ButtonComponent.colors        = KsmGuiStyle.iconTransitionColorBlock;
            ButtonComponent.navigation    = new Navigation()
            {
                mode = Navigation.Mode.None
            };                                                                                         // fix the transitions getting stuck

            SetButtonOnClick(onClick);
        }
Ejemplo n.º 9
0
        public void Close()
        {
            if (OnClose != null)
            {
                OnClose();
            }
            KsmGuiTooltipController.Instance.HideTooltip();

            if (destroyOnClose)
            {
                TopObject.DestroyGameObject();
            }
            else
            {
                Enabled = false;
            }
        }
Ejemplo n.º 10
0
 public KsmGuiHorizontalLayout
 (
     KsmGuiBase parent,
     int spacing                = 0,
     int paddingLeft            = 0,
     int paddingRight           = 0,
     int paddingTop             = 0,
     int paddingBottom          = 0,
     TextAnchor childAlignement = TextAnchor.UpperLeft
 ) : base(parent)
 {
     LayoutGroup                        = TopObject.AddComponent <HorizontalLayoutGroup>();
     LayoutGroup.spacing                = spacing;
     LayoutGroup.padding                = new RectOffset(paddingLeft, paddingRight, paddingTop, paddingBottom);
     LayoutGroup.childAlignment         = childAlignement;
     LayoutGroup.childControlHeight     = true;
     LayoutGroup.childControlWidth      = true;
     LayoutGroup.childForceExpandHeight = false;
     LayoutGroup.childForceExpandWidth  = false;
 }
Ejemplo n.º 11
0
        public KsmGuiHeader(KsmGuiBase parent, string title, Color backgroundColor = default, int textPreferredWidth = -1)
            : base(parent, 2, 0, 0, 0, 0, TextAnchor.UpperLeft)
        {
            // default : black background
            Image image = TopObject.AddComponent <Image>();

            if (backgroundColor == default)
            {
                image.color = Color.black;
            }
            else
            {
                image.color = backgroundColor;
            }


            TextObject = new KsmGuiText(this, title, null, TextAlignmentOptions.Center);
            TextObject.TextComponent.fontStyle = FontStyles.UpperCase;
            TextObject.SetLayoutElement(true, false, textPreferredWidth, -1, -1, 16);
        }
Ejemplo n.º 12
0
        public HttpResponseMessage History([FromBody] Input data)
        {
            db = new DBOperationService();
            ChangeDataType    change  = new ChangeDataType();
            CookieHeaderValue cookie  = Request.Headers.GetCookies("session").FirstOrDefault();
            UseHistory        history = change.Mapper(data, cookie["session"].Values["email"], DateTime.Now);

            db.StoreHistory(history);
            TopObject <Input> result = new TopObject <Input>()
            {
                status  = Convert.ToInt32(HttpStatusCode.OK),
                input   = data,
                message = "記錄成功~!!"
            };
            var resp = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new ObjectContent <TopObject <Input> >(result, new JsonMediaTypeFormatter())
            };

            return(resp);
        }
Ejemplo n.º 13
0
        public HttpResponseMessage ResendEmail([FromBody] string address)
        {
            db    = new DBOperationService();
            email = new EmailService();
            TopObject <string>  result;
            HttpResponseMessage resp;
            var user = db.search(address);

            if (user.verificationCode != null)
            {
                email.SendMail(user.Email, user.verificationCode, Request.RequestUri.ToString());
                //丟訊息給前端
                result = new TopObject <string>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.OK),
                    input   = address,
                    message = "已寄發驗證信至您的電子郵件信箱,請先驗證您的電子郵件信箱之後再使用本系統"
                };
                resp = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ObjectContent <TopObject <string> >(result, new JsonMediaTypeFormatter())
                };
                return(resp);
            }
            else
            {
                //
                result = new TopObject <string>()
                {
                    status  = Convert.ToInt32(HttpStatusCode.NotAcceptable),
                    input   = address,
                    message = "您的信箱已驗證過了,請重新登入"
                };
                resp = new HttpResponseMessage(HttpStatusCode.NotAcceptable)
                {
                    Content = new ObjectContent <TopObject <string> >(result, new JsonMediaTypeFormatter())
                };
                return(resp);
            }
        }
Ejemplo n.º 14
0
        public KsmGuiToggle(KsmGuiBase parent, string toggleText, bool initialOnState, UnityAction <bool> onClick, string tooltipText = null, int width = -1, int height = 18)
            : base(parent, 5)
        {
            onClickAction = onClick;

            if (width <= 0)
            {
                SetLayoutElement(true, false, -1, height);
            }
            else
            {
                SetLayoutElement(false, false, width, height);
            }

            ToggleComponent             = TopObject.AddComponent <Toggle>();
            ToggleComponent.transition  = Selectable.Transition.SpriteSwap;
            ToggleComponent.spriteState = KsmGuiStyle.buttonSpriteSwap;
            ToggleComponent.navigation  = new Navigation()
            {
                mode = Navigation.Mode.None
            };                                                                                         // fix the transitions getting stuck
            ToggleComponent.toggleTransition = Toggle.ToggleTransition.Fade;
            ToggleComponent.isOn             = initialOnState;
            ToggleComponent.onValueChanged.AddListener(onClickAction);

            GameObject    background          = new GameObject("Background");
            RectTransform backgroundTransform = background.AddComponent <RectTransform>();
            LayoutElement backgroundLayout    = background.AddComponent <LayoutElement>();

            backgroundLayout.preferredHeight = 18f;             // the toggle is always 18x18
            backgroundLayout.preferredWidth  = 18f;
            backgroundTransform.SetParentFixScale(TopTransform);
            background.AddComponent <CanvasRenderer>();
            Image backgroundImage = background.AddComponent <Image>();

            backgroundImage.sprite        = Textures.KsmGuiSpriteBtnNormal;
            backgroundImage.type          = Image.Type.Sliced;
            backgroundImage.fillCenter    = true;
            ToggleComponent.targetGraphic = backgroundImage;

            GameObject    checkmark          = new GameObject("Checkmark");
            RectTransform checkmarkTransform = checkmark.AddComponent <RectTransform>();

            checkmarkTransform.SetAnchorsAndPosition(TextAnchor.MiddleCenter, TextAnchor.MiddleCenter, 0, 0);
            checkmarkTransform.SetSizeDelta(10, 10);             // a checkbox is always 10x10, centered in the toggle
            checkmarkTransform.SetParentFixScale(backgroundTransform);
            checkmark.AddComponent <CanvasRenderer>();
            RawImage checkmarkImage = checkmark.AddComponent <RawImage>();

            checkmarkImage.texture  = Textures.KsmGuiTexCheckmark;
            ToggleComponent.graphic = checkmarkImage;

            TextObject = new KsmGuiText(this, toggleText, null, TextAlignmentOptions.Left, false, TextOverflowModes.Ellipsis);
            if (width <= 0)
            {
                SetLayoutElement(true, false, -1, height);
            }
            else
            {
                SetLayoutElement(false, false, width - 18 - 5, height);
            }
            TextObject.TopTransform.SetParentFixScale(TopTransform);

            if (tooltipText != null)
            {
                SetTooltipText(tooltipText);
            }
        }
Ejemplo n.º 15
0
        public KsmGuiWindow
        (
            LayoutGroupType topLayout,
            bool destroyOnClose       = true,
            float opacity             = 0.8f,
            bool isDraggable          = false, int dragOffset = 0,
            TextAnchor groupAlignment = TextAnchor.UpperLeft,
            float groupSpacing        = 0f,
            TextAnchor screenAnchor   = TextAnchor.MiddleCenter,
            TextAnchor windowPivot    = TextAnchor.MiddleCenter,
            int posX = 0, int posY = 0
        ) : base(null)
        {
            this.destroyOnClose = destroyOnClose;

            TopTransform.SetAnchorsAndPosition(screenAnchor, windowPivot, posX, posY);
            TopTransform.SetParentFixScale(KsmGuiMasterController.Instance.KsmGuiTransform);
            TopTransform.localScale = Vector3.one;

            // our custom lock manager
            InputLockManager = TopObject.AddComponent <KsmGuiInputLock>();
            InputLockManager.rectTransform = TopTransform;

            // if draggable, add the stock dragpanel component
            IsDraggable = isDraggable;
            if (IsDraggable)
            {
                DragPanel            = TopObject.AddComponent <DragPanel>();
                DragPanel.edgeOffset = dragOffset;
            }

            Image img = TopObject.AddComponent <Image>();

            img.sprite = Textures.KsmGuiSpriteBackground;
            img.type   = Image.Type.Sliced;
            img.color  = new Color(1.0f, 1.0f, 1.0f, opacity);

            SizeFitter = TopObject.AddComponent <ContentSizeFitter>();
            SizeFitter.horizontalFit = ContentSizeFitter.FitMode.PreferredSize;
            SizeFitter.verticalFit   = ContentSizeFitter.FitMode.PreferredSize;

            if (topLayout == LayoutGroupType.Vertical)
            {
                LayoutGroup = TopObject.AddComponent <VerticalLayoutGroup>();
            }
            else
            {
                LayoutGroup = TopObject.AddComponent <HorizontalLayoutGroup>();
            }

            LayoutGroup.spacing                = groupSpacing;
            LayoutGroup.padding                = new RectOffset(5, 5, 5, 5);
            LayoutGroup.childControlHeight     = true;
            LayoutGroup.childControlWidth      = true;
            LayoutGroup.childForceExpandHeight = false;
            LayoutGroup.childForceExpandWidth  = false;
            LayoutGroup.childAlignment         = groupAlignment;

            // close on scene changes
            GameEvents.onGameSceneLoadRequested.Add(OnSceneChange);
        }
Ejemplo n.º 16
0
 public void Setup()
 {
     this.obj = new TopObject();
     this.obj.SetSlot("name", "Fido");
 }
Ejemplo n.º 17
0
        public KsmGuiVerticalScrollView(KsmGuiBase parent, int contentSpacing = 5, int contentPaddingLeft = 5, int contentPaddingRight = 5, int contentPaddingTop = 5, int contentPaddingBottom = 5) : base(parent)
        {
            ScrollRect scrollRect = TopObject.AddComponent <ScrollRect>();

            scrollRect.horizontal                  = false;
            scrollRect.vertical                    = true;
            scrollRect.movementType                = ScrollRect.MovementType.Elastic;
            scrollRect.elasticity                  = 0.1f;
            scrollRect.inertia                     = true;
            scrollRect.decelerationRate            = 0.15f;
            scrollRect.scrollSensitivity           = 10f;
            scrollRect.verticalScrollbarVisibility = ScrollRect.ScrollbarVisibility.AutoHideAndExpandViewport;
            scrollRect.verticalScrollbarSpacing    = -3f;

            Image scrollRectBackground = TopObject.AddComponent <Image>();

            scrollRectBackground.color = KsmGuiStyle.boxColor;

            // viewport object (child of top object)
            GameObject    viewport          = new GameObject("viewport");
            RectTransform viewportTransform = viewport.AddComponent <RectTransform>();

            viewport.AddComponent <CanvasRenderer>();

            // Note : using a standard "Mask" has a bug where scrollrect content is visible
            // in other windows scollrects (like if all masks were "global" for all masked content)
            // see https://issuetracker.unity3d.com/issues/scroll-view-content-is-visible-outside-of-mask-when-there-is-another-masked-ui-element-in-the-same-canvas
            // using a RectMask2D fixes it, at the cost of the ability to use an image mask (but we don't care)
            viewport.AddComponent <RectMask2D>();

            //Mask viewportMask = viewport.AddComponent<Mask>();
            //viewportMask.showMaskGraphic = false;
            //Image viewportImage = viewport.AddComponent<Image>();
            //viewportImage.color = new Color(1f, 1f, 1f, 1f);

            viewportTransform.SetParentFixScale(TopTransform);
            scrollRect.viewport = viewportTransform;

            // content object (child of viewport)
            GameObject contentObject = new GameObject("content");

            Content                  = contentObject.AddComponent <RectTransform>();
            Content.anchorMin        = new Vector2(0f, 1f);
            Content.anchorMax        = new Vector2(1f, 1f);
            Content.pivot            = new Vector2(0f, 1f);
            Content.anchoredPosition = new Vector2(0f, 0f);
            Content.sizeDelta        = new Vector2(0f, 0f);

            ContentSizeFitter sizeFitter = contentObject.AddComponent <ContentSizeFitter>();

            sizeFitter.horizontalFit = ContentSizeFitter.FitMode.Unconstrained;
            sizeFitter.verticalFit   = ContentSizeFitter.FitMode.PreferredSize;

            ContentGroup                        = contentObject.AddComponent <VerticalLayoutGroup>();
            ContentGroup.padding                = new RectOffset(contentPaddingLeft, contentPaddingRight, contentPaddingTop, contentPaddingBottom);
            ContentGroup.spacing                = contentSpacing;
            ContentGroup.childAlignment         = TextAnchor.UpperLeft;
            ContentGroup.childControlHeight     = true;
            ContentGroup.childControlWidth      = true;
            ContentGroup.childForceExpandHeight = false;
            ContentGroup.childForceExpandWidth  = false;

            Content.SetParentFixScale(viewportTransform);
            scrollRect.content = Content;

            // scrollbar (child of top object)
            GameObject    scrollbar          = new GameObject("scrollbar");
            RectTransform scrollbarTransform = scrollbar.AddComponent <RectTransform>();

            scrollbarTransform.anchorMin        = new Vector2(1f, 0f);
            scrollbarTransform.anchorMax        = new Vector2(1f, 1f);
            scrollbarTransform.pivot            = new Vector2(1f, 1f);
            scrollbarTransform.anchoredPosition = new Vector2(0f, 0f);
            scrollbarTransform.sizeDelta        = new Vector2(10f, 0f);      // scrollbar width
            scrollbar.AddComponent <CanvasRenderer>();

            Image scrollBarImage = scrollbar.AddComponent <Image>();

            scrollBarImage.color = Color.black;

            Scrollbar scrollbarComponent = scrollbar.AddComponent <Scrollbar>();

            scrollbarComponent.interactable = true;
            scrollbarComponent.transition   = Selectable.Transition.ColorTint;
            scrollbarComponent.colors       = new ColorBlock()
            {
                normalColor      = Color.white,
                highlightedColor = Color.white,
                pressedColor     = new Color(0.8f, 0.8f, 0.8f),
                disabledColor    = new Color(0.8f, 0.8f, 0.8f, 0.5f),
                colorMultiplier  = 1f,
                fadeDuration     = 0.1f
            };
            scrollbarComponent.navigation = new Navigation()
            {
                mode = Navigation.Mode.None
            };
            scrollbarComponent.direction = Scrollbar.Direction.BottomToTop;
            scrollRect.verticalScrollbar = scrollbarComponent;

            scrollbarTransform.SetParentFixScale(TopTransform);

            // scrollbar sliding area
            GameObject    slidingArea          = new GameObject("slidingArea");
            RectTransform slidingAreaTransform = slidingArea.AddComponent <RectTransform>();

            slidingAreaTransform.anchorMin        = new Vector2(0f, 0f);
            slidingAreaTransform.anchorMax        = new Vector2(1f, 1f);
            slidingAreaTransform.pivot            = new Vector2(0.5f, 0.5f);
            slidingAreaTransform.anchoredPosition = new Vector2(5f, 5f);
            slidingAreaTransform.sizeDelta        = new Vector2(5f, 5f);      // scrollbar width / 2
            slidingAreaTransform.SetParentFixScale(scrollbarTransform);

            // scrollbar handle
            GameObject    scrollbarHandle = new GameObject("scrollbarHandle");
            RectTransform handleTransform = scrollbarHandle.AddComponent <RectTransform>();

            scrollbarHandle.AddComponent <CanvasRenderer>();
            handleTransform.anchorMin        = new Vector2(0f, 0f);
            handleTransform.anchorMax        = new Vector2(1f, 1f);
            handleTransform.pivot            = new Vector2(0.5f, 0.5f);
            handleTransform.anchoredPosition = new Vector2(-4f, -4f);      // relative to sliding area width
            handleTransform.sizeDelta        = new Vector2(-4f, -4f);      // relative to sliding area width
            scrollbarComponent.handleRect    = handleTransform;

            Image handleImage = scrollbarHandle.AddComponent <Image>();

            handleImage.color = new Color(0.4f, 0.4f, 0.4f);
            handleTransform.SetParentFixScale(slidingAreaTransform);
            scrollbarComponent.targetGraphic = handleImage;
        }
Ejemplo n.º 18
0
 public KsmGuiToggleList(KsmGuiBase parent, UnityAction <T> onChildToggleActivated)
     : base(parent, 2, 0, 0, 0, 0, TextAnchor.UpperLeft)
 {
     ToggleGroupComponent   = TopObject.AddComponent <ToggleGroup>();
     OnChildToggleActivated = onChildToggleActivated;
 }
Ejemplo n.º 19
0
        public KsmGuiVerticalSection(KsmGuiBase parent) : base(parent, 0, 5, 5, 5, 5, TextAnchor.UpperLeft)
        {
            Image background = TopObject.AddComponent <Image>();

            background.color = KsmGuiStyle.boxColor;
        }