示例#1
0
    public override void UpdateContents()
    {
        StoryEngine.Dialog data = cellData as StoryEngine.Dialog;

        responseText = new PUTextButton();

        responseText.font     = "Fonts/PressStart2P";
        responseText.value    = data.text;
        responseText.fontSize = 22;
        if (data.isHelpHeader)
        {
            responseText.fontSize = 14;
        }
        responseText.lineSpacing = 1.4f;
        responseText.fontColor   = Color.white;
        responseText.alignment   = PlanetUnity2.TextAlignment.upperLeft;
        responseText.SetFrame(0, 0, 378, 100, 0.5f, 0.5f, "stretch,stretch");
        responseText.LoadIntoPUGameObject(puGameObject);

        responseText.SetStretchStretch(30, 0, 30, 0);

        TextGenerator          textGen            = new TextGenerator();
        TextGenerationSettings generationSettings = responseText.text.GetGenerationSettings(responseText.rectTransform.rect.size);
        float height = textGen.GetPreferredHeight(data.text, generationSettings) + 60;

        puGameObject.rectTransform.sizeDelta = new Vector2(responseText.rectTransform.rect.width, height);

        if (data.isHelpHeader)
        {
            responseText.text.color = Color.yellow;

            LeanTween.value(responseText.gameObject, (v) => {
                responseText.rectTransform.localScale = new Vector3(v, v, 1.0f);
            }, 0.98f, 1.02f, 2.0f).setLoopCount(-1).setLoopPingPong().setEase(LeanTweenType.easeInOutCirc);
        }
        else
        {
            responseText.button.onClick.AddListener(() => {
                NotificationCenter.postNotification(null, "NavigateToRoom", NotificationCenter.Args("room", data.room));
            });
        }

        AnimateText(DialogType.Response, responseText, data.animationDelay);

        /*
         * responseText.rectTransform.anchoredPosition = new Vector2(responseText.rectTransform.rect.width, 0);
         * LeanTween.value (puGameObject.gameObject, (v) => {
         *      responseText.rectTransform.anchoredPosition = new Vector2(v, 0);
         * }, responseText.rectTransform.rect.width, 0, 0.47f).setDelay (UnityEngine.Random.Range (0.67f, 1.32f)).setEase (LeanTweenType.easeInOutQuad);
         */
    }
示例#2
0
    public void LoadRoom(string roomName)
    {
        StoryEngine.Room room = engine.GetRoom(roomName);
        if (room == null)
        {
            return;
        }

        CurrentRoom = roomName;

        if (room is StoryEngine.Cutscene)
        {
            PerformCutscene(room as StoryEngine.Cutscene);

            CharacterImage.image.color = Color.black;
            Spotlight.CheckCanvasGroup();
            Spotlight.canvasGroup.alpha = 0.0f;

            PlayerImage.rectTransform.anchoredPosition = new Vector2(775.0f + PlayerImage.rectTransform.rect.width * 2.0f, PlayerImage.rectTransform.anchoredPosition.y);
            return;
        }

        CharacterDialog.text.text = string.Format("{0}\n\n\"{1}\"", room.character, room.text);

        float currentDelay = 0.0f;

        currentDelay += SwitchToCharacter(room.character);

        currentDelay += DialogTableCell.AnimateText(DialogTableCell.DialogType.Character, CharacterDialog, currentDelay);

        List <object> allItemsForTable = new List <object> ();

        StoryEngine.Dialog header = new StoryEngine.Dialog();
        header.text           = "Select a response below:";
        header.isHelpHeader   = true;
        header.animationDelay = currentDelay;
        currentDelay         += DialogTableCell.AnimateTextDuration(DialogTableCell.DialogType.Response, header.text);
        allItemsForTable.Add(header);

        foreach (StoryEngine.Dialog dialog in room.responses)
        {
            dialog.animationDelay = currentDelay;
            currentDelay         += DialogTableCell.AnimateTextDuration(DialogTableCell.DialogType.Response, dialog.text);
            allItemsForTable.Add(dialog);
        }

        ResponsesTable.SetObjectList(allItemsForTable);
        ResponsesTable.ReloadTable();
    }