本章项目成果展示
我们打开上一篇60靠近Npc显示可对话标识的项目,
本章要做的事情是当靠近Npc按G键显示内容后,再按G键实现两个人的对话显示功能
首先将以下资源图片放进Art文件夹中并设置为精灵模式
在桌面上创建一个文本
讲一下对话内容复制到文本中
A
火焰,爆炸,我不停歇
B
正常点?你在这里做什么
A
哈哈,看来你对我的名声一无所知。不过没关系,让我来给你上一课。在这片大陆上,火焰和爆炸是我们的家常便饭
B
家常便饭?听起来有点危险
A
危险?不,这是艺术!每一声爆炸都是对力量的颂歌,每一次火焰的舞动都是对自由的渴望。现在,让我来教你如何在这片土地上生存
B
生存?听起来我需要一些技巧
A
没错,技巧和知识。首先,你得学会如何控制火焰,让它成为你的伙伴而不是敌人
B
那么,我应该从哪里开始
A
看看左手边的那扇门,就从那里开始
放进UITalk文件夹中
将子物体也拖拽至文件夹中
创建脚本:
编写脚本:TalkContent.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TalkContent : MonoBehaviour{[Header("UI组件")]public Text textLabel;public Image faceImage;[Header("文本文件")]public TextAsset textFile;public int index;public float textSpeed;[Header("文本文件")]public Sprite face01, face02;bool textFinished;List<string> textList = new List<string>();void Awake(){GetTextFormFile(textFile);}void GetTextFormFile(TextAsset file){textList.Clear();index = 0;var lineDate = file.text.Split('\n');foreach (var line in lineDate){textList.Add(line);}}void OnEnable(){textFinished = true;StartCoroutine(SetTextUI());}void Update(){if (Input.GetKeyDown(KeyCode.G) && index == textList.Count){Destroy(GameObject.Find("TalkUI01(Clone)").gameObject);index = 0;return;}if (Input.GetKeyDown(KeyCode.G) && textFinished){StartCoroutine(SetTextUI());}}IEnumerator SetTextUI(){textFinished = false;textLabel.text = "";switch (textList[index].Trim()){case "A":faceImage.sprite = face01;index++;break;case "B":faceImage.sprite = face02;index++;break;}for (int i = 0; i < textList[index].Length; i++){textLabel.text += textList[index][i];yield return new WaitForSeconds(textSpeed);}textFinished = true;index++;}
}
挂载脚本在预制体Talk01上并完成如下拖拽
设置文字的对话显示速度
运行项目 - 靠近后不断按G键
本章实现了人物与Npc的对话功能
接下来的文章内容:
1.小地图功能
2.窗口可拖拽脚本
3.点击名称寻找地点功能
4.隐藏怪物的生成
5.怪物I攻击范围内的主动攻击
6.掉落坐骑蛋的获取
7.异步传送转换场景
以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。
具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》
【Unity回合2.5D】破碎纪元_单机游戏热门视频 (bilibili.com)https://www.bilibili.com/video/BV1rZY4e9Ebs/?spm_id_from=333.999.0.0&vd_source=547091a95b03acfa8e8a9e46ef499cd6