/// <summary> /// Show branch buttons when branch happens /// </summary> /// <param name="branchOccursData"></param> private void OnBranchHappen(BranchOccursData branchOccursData) { if (dimOnBranch) { blackPanel.SetActive(true); } var branchInformations = branchOccursData.branchInformations; foreach (var branchInformation in branchInformations) { var childButton = Instantiate(BranchButtonPrefab); childButton.transform.SetParent(transform); childButton.transform.localScale = Vector3.one; var text = childButton.GetComponent <Text>(); if (text == null) { text = childButton.GetComponentInChildren <Text>(); } text.text = branchInformation.name; childButton.GetComponent <Button>().onClick.AddListener(() => Select(branchInformation.name)); } }
/// <summary> /// Show branch buttons when branch happens /// </summary> /// <param name="branchOccursData"></param> private void OnBranchHappen(BranchOccursData branchOccursData) { var branchInformations = branchOccursData.branchInformations; foreach (var branchInfo in branchInformations) { if (branchInfo.mode == BranchMode.Jump) { if (branchInfo.condition == null || branchInfo.condition.Invoke <bool>()) { gameState.SelectBranch(branchInfo.name); return; } } } if (backPanel != null) { backPanel.SetActive(true); } foreach (var branchInfo in branchInformations) { if (branchInfo.mode == BranchMode.Jump) { continue; } if (branchInfo.mode == BranchMode.Show && !branchInfo.condition.Invoke <bool>()) { continue; } var child = Instantiate(branchButtonPrefab, transform); var text = child.GetComponentInChildren <Text>(); text.text = branchInfo.text; var button = child.GetComponentInChildren <Button>(); button.onClick.AddListener(() => Select(branchInfo.name)); if (branchInfo.mode == BranchMode.Enable) { button.interactable = branchInfo.condition.Invoke <bool>(); } } }
/// <summary> /// Show branch buttons when branch happens /// </summary> /// <param name="branchOccursData"></param> private void OnBranchHappen(BranchOccursData branchOccursData) { var branchInformations = branchOccursData.branchInformations; foreach (var branchInfo in branchInformations) { if (branchInfo.mode == BranchMode.Jump) { if (branchInfo.condition == null || branchInfo.condition.Invoke <bool>()) { gameState.SelectBranch(branchInfo.name); return; } } } if (backPanel != null) { backPanel.SetActive(true); } foreach (var branchInfo in branchInformations) { if (branchInfo.mode == BranchMode.Jump) { continue; } if (branchInfo.mode == BranchMode.Show && !branchInfo.condition.Invoke <bool>()) { continue; } var child = Instantiate(branchButtonPrefab, transform); if (branchInfo.imageInfo != null) { var layoutElement = child.AddComponent <LayoutElement>(); layoutElement.ignoreLayout = true; var image = child.GetComponent <Image>(); image.type = Image.Type.Simple; image.alphaHitTestMinimumThreshold = 0.5f; var imageInfo = branchInfo.imageInfo; // TODO: preload image.sprite = AssetLoader.Load <Sprite>(System.IO.Path.Combine(imageFolder, imageInfo.name)); image.SetNativeSize(); child.transform.localPosition = new Vector3(imageInfo.positionX, imageInfo.positionY, 0f); child.transform.localScale = new Vector3(imageInfo.scale, imageInfo.scale, 1f); } var text = child.GetComponentInChildren <Text>(); text.text = branchInfo.text; var button = child.GetComponentInChildren <Button>(); button.onClick.AddListener(() => Select(branchInfo.name)); if (branchInfo.mode == BranchMode.Enable) { button.interactable = branchInfo.condition.Invoke <bool>(); } } }
/// <summary> /// Make the state normal when branch occurs /// </summary> /// <param name="branchOccursData"></param> private void OnBranchOcurrs(BranchOccursData branchOccursData) { stateBeforeBranch = State; State = DialogueBoxState.Normal; }
private void OnBranchOccurs(BranchOccursData branchOccursData) { saveViewController.AutoSaveBookmark(); }