Inheritance: MonoBehaviour
コード例 #1
0
    public void Initialize(Quest quest)
    {
        if (objectivesHeader != null)
        {
            objectivesHeader.text = "OBJECTIVES";
        }
        if (questName != null)
        {
            questName.text = quest.questName.ToUpper();
        }
        if (description != null)
        {
            description.text = quest.description;
        }

        // Destroy all children
        for (int i = 0; i < objectivesListTransform.childCount; i++)
        {
            Destroy(objectivesListTransform.GetChild(i).gameObject);
        }

        // Add objectives to list
        foreach (Objective obj in quest.objectives)
        {
            ObjectiveDisplay display = Instantiate(objectiveDisplayPrefab) as ObjectiveDisplay;
            display.transform.SetParent(objectivesListTransform, false);
            display.Initialize(obj);
        }
    }
コード例 #2
0
        }//SetMessageText

        public void UpdateObjectivesList(ObjectiveStatus[] objectives) {
            if (objectiveDisplayList == null) {
                objectiveDisplayList = new List<ObjectiveDisplay>();
            }

            //Do some error checking here to make sure that these elements aren't null.
            for (int i = 0; i < objectives.Length; ++i) {
                if (i >= objectiveDisplayList.Count) {
                    Text newText = GameObject.Instantiate<Text>(objectiveTextBase);
                    newText.text = objectives[i].description;

                    Image newImage;
                    if (objectives[i].complete) {
                        newImage = GameObject.Instantiate<Image>(objectiveCompleteImage);
                        newText.color = objectiveCompleteColor;
                    } else {
                        newImage = GameObject.Instantiate<Image>(objectiveIncompleteImage);
                        newText.color = objectiveIncompleteColor;
                    }

                    newImage.rectTransform.SetParent(objectivePanel, false);
                    newText.rectTransform.SetParent(objectivePanel, false);

                    newImage.rectTransform.position = new Vector3(
                        newImage.rectTransform.position.x,
                        newImage.rectTransform.position.y - (i * objectiveSpacing));

                    newText.rectTransform.position = new Vector3(
                        objectiveImageOffset + newText.rectTransform.position.x,
                        newText.rectTransform.position.y - (i * objectiveSpacing));

                    ObjectiveDisplay newObjective = new ObjectiveDisplay(newImage, newText);
                    objectiveDisplayList.Add(newObjective);
                } else {
                    objectiveDisplayList[i].image.gameObject.SetActive(true);
                    objectiveDisplayList[i].text.gameObject.SetActive(true);

                    if (objectives[i].complete) {
                        objectiveDisplayList[i].image.sprite = objectiveCompleteImage.sprite;
                        objectiveDisplayList[i].text.color = objectiveCompleteColor;
                    } else {
                        objectiveDisplayList[i].image.sprite = objectiveIncompleteImage.sprite;
                        objectiveDisplayList[i].text.color = objectiveIncompleteColor;
                    }

                    objectiveDisplayList[i].text.text = objectives[i].description;
                }
            }

            //Turn off any display objectives that aren't needed.
            for (int i = objectives.Length; i < objectiveDisplayList.Count; ++i) {
                objectiveDisplayList[i].image.gameObject.SetActive(false);
                objectiveDisplayList[i].text.gameObject.SetActive(false);
            }
        }//UpdateObjectivesList