0

我正在尝试更改已保存为预制件的对话框 UI(Unity 4.6 的 UI)中嵌套图像对象的精灵。我可以加载预制件,但是当我尝试这样做时:

Image[] imageComponents = conversationDialogNoChoice.GetComponentsInChildren<Image>();

我得到零物品。层次结构是:

在此处输入图像描述

完整的代码是:

        private GameObject conversationDialogNoChoice;
public void StartConversation(Conversation conversation)
    {
        if (!talking)
        {
            //StartCoroutine(DisplayConversation(conversation));
            StartCoroutine(DisplayConversation(conversation));
        }
    }

    IEnumerator DisplayConversationNewUI(Conversation conversation)
    {
        conversationDialogNoChoice = (GameObject)Resources.Load("Prefabs/ConversationDialogNoChoices");
        conversationDialogChoice = (GameObject)Resources.Load("Prefabs/ConversationDialogChoices");
        ConversationTest = (GameObject)Resources.Load("Prefabs/ConversationTest");
        bool nextPushed;

        foreach (var conversationLine in conversation.ConversationLines)
        {
            nextPushed = false;
            Image[] imageComponents = conversationDialogNoChoice.GetComponentsInChildren<Image>();
            Debug.Log(imageComponents.Length);
            //imageComponents[].sprite = currentCovnersationLine.DisplayPicture;

            Instantiate(conversationDialogNoChoice);

            while (!nextPushed)
            {
                if (Input.GetKeyDown(KeyCode.Return))
                {
                    nextPushed = true;
                }
                yield return null;
            }
        }

        talking = false; //talking is complete
        if (conversation.Repeatable == false)
        {
            conversation.CanOccur = false;
        }
        yield return null;


    }
4

3 回答 3

1

您确定您的图像游戏对象处于活动状态吗?GetComponentsInChildrenincludeInactive参数,false默认设置为.

于 2015-05-07T08:37:09.717 回答
0

也许您应该考虑在资源加载路径中包含“面板”。

于 2015-01-22T12:31:26.130 回答
0

除了“Max Yankov”所说的话。

ImageinGetComponentsInChildren<Image>()指的是游戏对象上的脚本或组件,而不是游戏对象本身。

因此,如果您需要查找所有组件,则需要在您的子游戏对象上Image添加一个带有名称的脚本或组件。Image没有必要将游戏对象命名为“图像”。

于 2015-06-17T08:10:49.113 回答