最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【Unity教程】劇情對(duì)話(huà)系統(tǒng)

2023-08-30 10:21 作者:薔薇對(duì)你說(shuō)晚安  | 我要投稿

課代表來(lái)了,代碼再次,點(diǎn)贊關(guān)注拿走

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using TMPro;

using UnityEngine.UI;


public class DiaLogmanager : MonoBehaviour

{

??/// <summary>

??/// 對(duì)話(huà)內(nèi)容文本,csv格式

??/// </summary>?

??public TextAsset dialogDataFile;


??/// <summary>

??/// 左側(cè)角色圖像

??/// </summary>

??public SpriteRenderer spriteLeft;

??/// <summary>

??/// 右側(cè)角色圖像

??/// </summary>

??public SpriteRenderer spriteRight;


??/// <summary>

??/// 角色名字文本

??/// </summary>

??public TMP_Text nameText;


??/// <summary>

??/// 對(duì)話(huà)內(nèi)容文本

??/// </summary>

??public TMP_Text dialogText;


??/// <summary>

??/// 角色圖片列表

??/// </summary>

??public List<Sprite> sprites = new List<Sprite>();


??/// <summary>

??/// 角色名字對(duì)應(yīng)圖片的字典

??/// </summary>

??Dictionary<string, Sprite> imageDic = new Dictionary<string, Sprite>();

??/// <summary>

??/// 當(dāng)前對(duì)話(huà)索引值

??/// </summary>

??public int dialogIndex;

??/// <summary>

??/// 對(duì)話(huà)文本按行分割

??/// </summary>

??public string[] dialogRows;

??/// <summary>

??/// 繼續(xù)按鈕

??/// </summary>

??public Button next;


??/// <summary>

??/// 選項(xiàng)按鈕

??/// </summary>

??public GameObject optionButton;

??/// <summary>

??/// 選項(xiàng)按鈕父節(jié)點(diǎn)

??/// </summary>

??public Transform buttonGroup;

??// Start is called before the first frame update

??private void Awake()

??{

????imageDic["醫(yī)生"] = sprites[0];

????imageDic["弗蘭"] = sprites[1];

??}

??void Start()

??{

????ReadText(dialogDataFile);

????ShowDiaLogRow();

????// UpdateText("安吉麗娜", "即使引導(dǎo)早已破碎,也請(qǐng)您當(dāng)上艾爾登之王");

????//UpdateImage("僵尸", false);//不在左側(cè)

????// UpdateImage("安吉麗娜", true);//在左側(cè)

??}

??// Update is called once per frame

??void Update()

??{


??}



??//更新文本信息

??public void UpdateText(string _name, string _text)

??{

????nameText.text = _name;

????dialogText.text = _text;

??}

??//更新圖片信息

??public void UpdateImage(string _name, string _position)

??{

????if (_position == "左")

????{

??????spriteLeft.sprite = imageDic[_name];

????}

????else if (_position == "右")

????{

??????spriteRight.sprite = imageDic[_name];

????}

??}


??public void ReadText(TextAsset _textAsset)

??{

????dialogRows = _textAsset.text.Split('\n');//以換行來(lái)分割

?????????????????????????// foreach(var row in rows)

?????????????????????????//{

?????????????????????????//?string[] cell = row.Split(',');

?????????????????????????// }

????Debug.Log("讀取成果");

??}


??public void ShowDiaLogRow()

??{

????for(int i=0;i<dialogRows.Length;i++)

????{

??????string[] cells = dialogRows[i].Split(',');

??????if (cells[0] == "#" && int.Parse(cells[1]) == dialogIndex)

??????{

????????UpdateText(cells[2], cells[4]);

????????UpdateImage(cells[2], cells[3]);


????????dialogIndex = int.Parse(cells[5]);

????????next.gameObject.SetActive(true);

????????break;

??????}

??????else if (cells[0]== "@" && int.Parse(cells[1]) == dialogIndex)

??????{

????????next.gameObject.SetActive(false);//隱藏原來(lái)的按鈕

????????GenerateOption(i);

??????}

??????else if (cells[0] == "end" && int.Parse(cells[i]) == dialogIndex)

??????{

????????Debug.Log("劇情結(jié)束");//這里結(jié)束

??????}

????}

??}

??public void OnClickNext()

??{

????ShowDiaLogRow();

??}

??public void GenerateOption(int _index)//生成按鈕

??{

????string[] cells = dialogRows[_index].Split(',');

????if (cells[0] == "@")

????{

??????GameObject button = Instantiate(optionButton, buttonGroup);

??????//綁定按鈕事件

??????button.GetComponentInChildren<TMP_Text>().text = cells[4];

??????button.GetComponent<Button>().onClick.AddListener(delegate?

??????{?

????????OnOptionClick(int.Parse(cells[5]));

??????}

??????);

??????GenerateOption(_index + 1);

????}

????

??}


??public void OnOptionClick(int _id)

??{

????dialogIndex = _id;

????ShowDiaLogRow();

????for(int i=0;i < buttonGroup.childCount; i++)

????{

??????Destroy(buttonGroup.GetChild(i).gameObject);

????}

??}

}

【Unity教程】劇情對(duì)話(huà)系統(tǒng)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
咸阳市| 孟州市| 昌黎县| 五原县| 上林县| 顺平县| 铜川市| 涿州市| 乌鲁木齐市| 泗阳县| 宣城市| 宜川县| 同江市| 唐山市| 新竹县| 安龙县| 葫芦岛市| 伊金霍洛旗| 遵义县| 崇仁县| 江西省| 永仁县| 马公市| 南充市| 偃师市| 若尔盖县| 营口市| 沙湾县| 石嘴山市| 东宁县| 黄陵县| 栖霞市| 新野县| 大荔县| 如皋市| 东宁县| 廊坊市| 桂东县| 辉县市| 定襄县| 多伦县|