示例#1
0
        public sealed override void Initialize()
        {
            Handler     = GameObject.GetComponent <GUIHandler>(GameObjectComponentSearchMode.ParentalHierarchy);
            RenderLayer = -1;

            this.interactionGraphics = new GUIInteractionColors();

            this.shape = new CustomShape(Render);

            InteractionState = GUIComponentInteractionState.None;

            Width  = 1;
            Height = 1;

            AdditionalInitialize();
        }
        private Texture FindStateTexture(GUIComponentInteractionState state)
        {
            switch (state)
            {
            case GUIComponentInteractionState.None:
                return(DefaultState);

            case GUIComponentInteractionState.Hovered:
                return(HoveredState);

            case GUIComponentInteractionState.Clicked:
                return(ClickedState);

            default:
                throw new ArgumentOutOfRangeException(nameof(state), state, null);
            }
        }
 internal abstract void Render(int renderLayer, Renderer renderer, float x, float y, float width, float height, GUIComponentInteractionState state);
 internal override void Render(int renderLayer, Renderer renderer, float x, float y, float width, float height, GUIComponentInteractionState state)
 {
     renderer.DrawTexture(renderLayer, FindStateTexture(state).Image, x, y, width, height);
 }
 internal override void Render(int renderLayer, Renderer renderer, float x, float y, float width, float height, GUIComponentInteractionState state)
 {
     //renderer.FillCircle(renderLayer - 1, Color.Red, 0, 0, 1);
     renderer.FillRectangle(renderLayer, FindStateColor(state), x, y, width, height);
 }