今天的文章,要说明如何使用对话管理器来制作游戏的角色对话介面。
目录
创建中文字型
对话介面配置
对话管理器
可以从原本电脑的字型中选取,或者是从网路上下载字型资源都可以。将想要的生成的字型拉近专案的资料夹中。
在资料夹中,对刚刚拉进来的字型点选右键,创建TextMeshPro的Font Asset。复制好所有对话内容,包含中文字、符号等。
点选 windows>TextMeshPro>Font Asset Creator 进入产生器。
选取原本选定的字型,以及刚刚创建的Font Asset,再贴上复制的对话内容,再依照各自的需求对其他选项作调整,调整好後就可以点选Generate,之後再储存字型就产生罗。
可依照自己的摆放要显示的介面,但必须要有TextMeshPro来显示对话以及Button来控制显示下一句。
public TextMeshProUGUI textDisplay;
public string[] sentences;
public int index;
public float typingSpeed;
public GameObject DialogPannel;
public GameObject continueButton;
再宣告好string[]变数後,去Unity的Inspector面板中,填入对话的句子,之後会用到。
用foreach将句子中的每个letter分开显示,WaitForSeconds出现延迟打字效果。
IEnumerator Type() {
foreach (char letter in sentences[index].ToCharArray()) {
textDisplay.text += letter;
yield return new WaitForSeconds(typingSpeed);
}
}
public void NextSentence() {
continueButton.SetActive(false);
if (index < sentences.Length - 1){
index++;
textDisplay.text = "";
typywords.Play();
StartCoroutine(Type());
}
else {
textDisplay.text = "";
continueButton.SetActive(false);
DialogPannel.SetActive(false);
}
}
记得在continueButton这个控制前往下一句话的Button,设置Onclick要触发NextSentence()这个函式。
判断句子的letter是不是都出现了,如果都出现了前往下一句话的Button就可以开启,并处在选择状态。
void Update()
{
if (textDisplay.text == sentences[index]) {
continueButton.SetActive(true);
typywords.Stop();
continueButton.GetComponent<Button>().Select();
}
}
以上对话的部分就完成罗!再依据不同的场景会有不同的对话系统去设定就可以了!
那我们明天见~
>>: D3JsDay26圆圈图的实战力,直辖市人口比例-带入真实资料做圆圈图
先来回顾一下目前铁人付金流外挂的资料夹结构: iron-pay ├── composer.json ...
今天分享我们在日本登记公司跟运营公司用的一些服务 虚拟住址、电话、电话秘书 登记公司需要住址跟电话 ...
Button 是网页中最常用的元件,跟他相依的元件和情境也不少,因此虽然他不是一个介面,依然还是可...
今天大概会聊到的范围 compose runtime compose compiler 今天会更深...
FB登入 第10步:开启 /app/res/values/strings.xml 档案。 FB会自动...