Example #1
0
    public override UIStyleInfoInterface GetStyle(Component component)
    {
        Button       comp  = (Button)component;
        UIButtonInfo style = (UIButtonInfo)base.GetStyle(component);

        style.interactable = comp.interactable;
        return(style);
    }
 public void ShowButton(int id, bool state)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             elem.TriggerTarget.gameObject.SetActive(state);
             break;
         }
     }
 }
 //Включает активность кнопки(через raycastTarget)
 public void ActiveClickable(int id, bool state)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             elem.TriggerTarget.raycastTarget = state;
             break;
         }
     }
 }
 public bool IsShowVisual(int id)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             return(elem.TriggerTarget.enabled);
         }
     }
     return(false);
 }
 public void SetTriggerSprite(int id, Sprite spriteTrigger)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             elem.TriggerTarget.sprite = spriteTrigger;
             return;
         }
     }
     //if (id >= Elements.Length && spriteTrigger != null) return;
     //Elements[id].TriggerTarget.sprite = spriteTrigger;
 }
 public bool CheckTriggerArea(int id, Vector2 pos)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             Image _img = elem.OtherCheckAreaForTrigger == null ? elem.TriggerTarget : elem.OtherCheckAreaForTrigger;
             //Debug.LogError("CheckTriggerArea");
             return(RectTransformUtility.RectangleContainsScreenPoint(_img.rectTransform, pos, null));
         }
     }
     return(false);
 }
 public void SetVisualImageSprite(int id, Sprite spriteImage)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             if (elem.isImage)
             {
                 elem.Image.sprite = spriteImage;
             }
             break;
         }
     }
 }
 public void ActiveSprite(int id)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             if (elem.isSprite)
             {
                 elem.Image.sprite = elem.State ? elem.SpriteDown : elem.SpriteUp;
             }
             break;
         }
     }
 }
 public void ShowVisual(int id, bool state)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             if (elem.Image != null)
             {
                 elem.Image.enabled = state;
             }
             elem.TriggerTarget.enabled = state;
             break;
         }
     }
 }
 bool SetTriggerState(int id, bool state)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             if (elem.isSprite)
             {
                 elem.Image.sprite = state ? elem.SpriteDown : elem.SpriteUp;
             }
             elem.State = state;
             return(true);
         }
     }
     return(false);
 }
 public void Click2(int id, bool state, PointerEventData data)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             if (state)
             {
                 elem.Trigger.OnPointerDown(data);
             }
             else
             {
                 elem.Trigger.OnPointerUp(data);
             }
         }
     }
 }
 public void SetColorTriggerSprite(int id, Color color)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             if (elem.Image == null)
             {
                 elem.TriggerTarget.color = color;
             }
             else
             {
                 elem.Image.color = color;
             }
             break;
         }
     }
 }
    public int AddButton(UIButtonInfoBase param)
    {
        if (param.TriggerTarget == null)
        {
#if UNITY_EDITOR
            Debug.LogError("У ЭЛЕМЕНТА НЕ НАЗНАЧЕН TriggerTarget");
#endif
            return(-1);
        }

        //hmmm
        //Array.Resize(ref Elements, Elements.Count + 1);
        var info = new UIButtonInfo()
        {
            TriggerTarget            = param.TriggerTarget,
            Image                    = param.Image,
            SpriteDown               = param.SpriteDown,
            SpriteUp                 = param.SpriteUp,
            OtherCheckAreaForTrigger = param.OtherCheckAreaForTrigger
        };
        //Elements[Elements.Count - 1] = info;
        Elements.Add(info);
        info.ID      = Elements.Count - 1;
        info.Trigger = info.TriggerTarget.gameObject.AddComponent <EventTrigger>();
        info.Trigger.triggers.Clear();
        var onUp = new EventTrigger.Entry();
        onUp.eventID = EventTriggerType.PointerUp;
        int id = info.ID;
        onUp.callback.AddListener((a) => { UpTrigger(Elements[id].ID); });
        var onDown = new EventTrigger.Entry();
        onDown.eventID = EventTriggerType.PointerDown;
        onDown.callback.AddListener((a) => { DownTrigger(Elements[id].ID); });
        info.Trigger.triggers.Add(onUp);
        info.Trigger.triggers.Add(onDown);
        info.isImage  = info.Image != null;
        info.isSprite = info.isImage && info.SpriteDown != null && info.SpriteUp != null;
        if (info.isSprite)
        {
            info.Image.sprite = info.SpriteUp;
        }
        return(id);
    }
 public void SetSprites(int id, Sprite spriteUp, Sprite spriteDown)
 {
     for (int i = 0; i < Elements.Count; i++)
     {
         elem = Elements[i];
         if (elem.ID == id)
         {
             bool isImage = elem.Image != null;
             elem.isSprite = isImage && spriteUp != null && spriteDown != null;
             if (elem.isSprite)
             {
                 elem.SpriteUp   = spriteUp;
                 elem.SpriteDown = spriteDown;
                 if (elem.Image.sprite == null)
                 {
                     Color clr = elem.Image.color;
                     clr.a            = 1f;
                     elem.Image.color = clr;
                 }
                 elem.Image.sprite = elem.State ? spriteDown : spriteUp;
             }
             else
             {
                 elem.SpriteUp   = null;
                 elem.SpriteDown = null;
                 if (isImage)
                 {
                     elem.Image.sprite = null;
                     Color clr = elem.Image.color;
                     clr.a            = 0f;
                     elem.Image.color = clr;
                 }
             }
             break;
         }
     }
 }
 void ReturnInDefault()
 {
     for (int i = Elements.Count - 1; i >= 0; i--)
     {
         elem = Elements[i];
         if (elem.isSprite)
         {
             elem.Image.sprite = elem.SpriteUp;
         }
         bool prev = elem.State;
         elem.State = false;
         if (prev)
         {
             if (Callback != null)
             {
                 Callback(elem.ID, false);
             }
             if (CallbackOnDown != null)
             {
                 CallbackOnDown(elem.ID);
             }
         }
     }
 }