开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,[点击查看活动详情]
前言
在上一篇文章中,实现了游戏中常见的技能的冷却效果,本篇要介绍的打字机效果,在游戏中也颇为常见,例如:主角与任务NPC的对话系统,再比如推进游戏发展的剧情系统等。让我们开始吧!
准备工作
这里为了减少开发难度,笔者会使用到一个在游戏开发中常用的动画插件DOTween,为什么不用代码原生的方式来实现这个功能呢?主要是因为采用原生的方式,实现起来较为麻烦,而且运行效率不高,采用DOTween也是商业项目中一直在用的方式。 这里附上DOTween插件的下载地址,它有两个版本,一个是免费版,还有一个是收费的Pro版本,不过如果不是很有必要的话,免费版就够用了。
assetstore.unity.com/packages/to…
实现步骤
- 1、在Hierarchy右键新建一个Text,如果面板中不存在Canvas的话,系统自动创建一个canvas并作为Text组件的父物体。
- 2、创建脚本DoTweenTypeWriter.cs拖拽赋值到上一步创建的Text组件上。
- 3、使用IDE打开创建的TypeWriter脚本,添加如下代码:
//引入DOTween的命名空间
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
namespace TextWrite
{
public class DoTweenTypeWriter:MonoBehaviour
{
//Text组件
private Text mText;
//要显示的内容
private string mContent;
//动画播放完毕需要经过多少秒
private float mDuration = 10f;
void Start()
{
mText = GetComponent<Text>();
//重置文本内容
mContent = mText.text;
mText.text = "";
PlayWords();
}
private void PlayWords()
{
//实现打字机效果的核心代码
mText.DOText(mContent, mDuration);
}
}
}
最后
需要注意的是,游戏中一个剧情或对话系统,往往还掺杂着其他逻辑,例如与用户之间的交互,用户不同的点击,也会有剧情打断,或者关闭之类的情况需要处理。本篇只介绍了打字机的效果,它是可以作为其中的一部分应用到其中的。OK,本篇就到这里。