Unity c # Изображение не отображается на панели холста пользовательского интерфейса - PullRequest
0 голосов
/ 05 мая 2018

Я написал метод MakeCard(), который создает префаб карты (с кнопкой) и добавляет к нему изображение через скрипт, использующий массив спрайтов, но изображение не отображается на панели («Пул карт») ) при котором я настраиваю свою трансформацию. У меня есть другой метод с тем же кодом, и он отображает карту (с изображением) на другой панели (работает отлично). Но код не работает для панели «Пул карт». Я даже отображаю индекс и название карты в журналах, чтобы проверить, хорошо ли это и хорошо. Пожалуйста, помогите! РЕДАКТИРОВАТЬ: Если я изменяю родительскую панель карты с «Рука» на «Пул карт», она отображается нормально, но если я создаю экземпляр карты и устанавливаю ее Родителя как «Пул карт», она не отображается. Надеюсь, что эта информация имеет какой-либо смысл!

 public void MakeCard(int index)
 {
    print("Making Card..." + index);

    var cardCopy = Instantiate(cardObj, new Vector3(0, 0, 0), 
    Quaternion.identity);
    var newCard = cardCopy.GetComponent<Card>();
    newCard.SetFace(myData.shuffleIndex[index]);
    print(newCard.GetName());

    cardCopy.transform.SetParent(GameObject.Find("Card Pool").transform);
    cardCopy.GetComponent<Button>().interactable = false;
 }

другой код, который отлично работает:

public void DistributeMyCards()
{

    for(int temp = myData.shuffleIndexToStartWith + 12; myData.shuffleIndexToStartWith < temp; myData.shuffleIndexToStartWith++)
    {
        //localHand.Add(myData.shuffleIndexToStartWith);

        Debug.Log("inside for: " + myData.shuffleIndexToStartWith);
        var cardCopy = Instantiate(cardObj, new Vector3(0, 0, 0), Quaternion.identity);
        var newCard = cardCopy.GetComponent<Card>();
        newCard.SetFace(myData.shuffleIndex[myData.shuffleIndexToStartWith]);

        cardCopy.transform.SetParent(GameObject.Find("Hand").transform);

        var owner = cardCopy.GetComponent<CardOwner>();
        owner.photonPlayer = PlayerNetwork.Instance.me;
        owner.setCardId(myData.shuffleIndexToStartWith);

        if (!PhotonNetwork.isMasterClient)
        {
            DisableThrowLocal(cardCopy);
        }

        localHand.Add(cardCopy);
    }
}

PS. Это MP игра, но я думаю, что это не имеет никакого отношения к этой проблеме.

1 Ответ

0 голосов
/ 05 мая 2018

хорошо, так что я нашел проблему. Мне пришлось поставить отметку child controls size (высота и ширина) под компонентом горизонтальной группы макетов, прикрепленным к панели так же, как и «Ручная панель».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...