private void Awake()
    {
        //  Setup for our system and its objects
        for (int i = 0; i < selectables.Length; ++i)
        {
            //  Create and add an SID to each selectable
            SelectableID sid = selectables[i].gameObject.AddComponent <SelectableID>();
            sid.Setup(in i, SelectableTriggered);

            //  Create and add an OnSelect EventTrigger that tells the selectable to notify this script with its ID
            EventTrigger       trigger     = selectables[i].gameObject.AddComponent <EventTrigger>();
            EventTrigger.Entry selectEntry = new EventTrigger.Entry();
            selectEntry.eventID = EventTriggerType.Select;
            selectEntry.callback.AddListener((data) => { sid.OnSelectCallback((BaseEventData)data); });
            trigger.triggers.Add(selectEntry);
        }
    }
 private void TargetChooseCard(NetworkConnection target, int index, CardServerData[] cardData)
 {
     SelectedCards.Clear();
     foreach (GameObject obj in taskObjs)
     {
         obj.SetActive(false);
     }
     finishedButton.gameObject.SetActive(true);
     foreach (CardServerData data in cardData)
     {
         SelectableID selectable = Instantiate(selectableIDPrefab, taskPanel);
         selectable.CardData.Data = data;
         Sprite artwork = Resources.Load <Sprite>("Cards/Artwork/" + data.OriginalName);
         selectable.CardData.Artwork.sprite = artwork;
         selectable.GetComponent <Canvas>().sortingOrder = 5;
         selectableToDestroy.Add(selectable);
     }
 }