unity对话代码
这个是根据网上unity GUI打字机教程修改的
原教程是JS,我给改成了C#,然后增加了许多功能
这个教程能实现一段文字对话,有打字机显示效果,能写许多对话,能快进对话,总之现在RPG游戏里有的功能都实现了
直接代码,转载请声明转载自http://www.cnblogs.com/suxsho/
---------------------------------------------
using UnityEngine;
using System.Collections;
//-----------------------------------------------------
// 对话效果
//-----------------------------------------------------
public class printTest : MonoBehaviour {
float letterPause = 0.3f; //时间间隔
private string word; //存储输出文本
private string printText; //打印的字
private int i, j = ; //设置第几句话,以及判断是否出现新的语句
//-----------------------------------------------------
// 剧本(每句后面加上,)
//-----------------------------------------------------
private string[] Text =
{
"这是一个古老的传说.......",
"世界上每隔几百年就会出现想毁灭世界的恶魔",
"而此时,也总会出现一个勇者消灭邪恶",
"世界已经和平很久了....",
"随着工业革命、世界大战的到来,人类科技得到了飞速发展",
"随着科学的进步,无神论相继而来",
"毁灭世界的恶魔,这只会是一个神话",
"没有人相信这种奇幻故事中的东西会出现在真实的世界",
"但是,突然有一天.......",
"天空中出现了一个巨大的漩涡,世界各地都开始了灾难",
"科学家无法用现有的科技证明灾难的原因",
"世界陷入混乱,人们惊慌失措",
"整个世界就如末日到来",
"此时,有人想起了恶魔的传说",
"但是,这个时代已经没有了勇者",
"然后.......",
"世界就毁灭了,啊我编不出来了w",
}; // Use this for initialization
void Start()
{
textChange();
} void OnGUI()
{
GUI.Label(new Rect(Screen.width / - ,Screen.height / - , , ), printText);
} // Update is called once per frame
void Update ()
{
if (Input.GetMouseButtonDown())
{
//检测对话显示完没有 i = j 就是还没有显示完
if (i == j)
{
letterPause = 0.0f; //加快显的速度,让对话速度显示完
}
else
{
//检测对话语句是否超出了最大限制,超出了就DO STH.
if (i < Text.Length - )
{
letterPause = 0.3f;
i++;
textChange();
}
else
{
//DO STH. } }
}
}
/**切换语句功能*/
void textChange()
{
word = "";
word = Text[i];//把你输出的字先赋值给word
printText = "";//把你要显示的字先抹除,以便你可以在最初显示的时候显示为空,当然你也可以加上其他字,让他先显示,打字机效果打的字会显示在这个后面
StartCoroutine(TypeText());
}
/**输出文本功能*/
IEnumerator TypeText()
{
foreach (char letter in word.ToCharArray())
{
printText += letter;//把这些字赋值给Text
yield return new WaitForSeconds(letterPause);
}
printText += " ▼"; //标记可按键的提示
j++; //避免出现下一句不显示的情况将对话记录+1
}
}
unity对话代码的更多相关文章
- Unity实现代码控制音频播放
前言 很久没说过Unity了,现在说一下Unity用代码控制音频播放 准备工作 1.需要播放的音频 2.给需要加声音的对象加Audio Source组件 3.新建Play脚本,并绑定需要播放声音的对象 ...
- 微软IOC容器Unity简单代码示例3-基于约定的自动注册机制
@(编程) [TOC] Unity在3.0之后,支持基于约定的自动注册机制Registration By Convention,本文简单介绍如何配置. 1. 通过Nuget下载Unity 版本号如下: ...
- 微软IOC容器Unity简单代码示例2-配置文件方式
@(编程) 1. 通过Nuget下载Unity 这个就不介绍了 2. 接口代码 namespace UnityDemo { interface ILogIn { void Login(); } } n ...
- 微软IOC容器Unity简单代码示例1
@(编程) 1. 通过Nuget下载Unity 这个就不介绍了 2. 接口代码 namespace UnityDemo { interface ILogIn { void Login(); } } 3 ...
- 使用rider做为unity的代码编辑器
使用Rider做的编写Unity代码的IDE,记录一些与VS不相同的笔记 安装和设置方法: 我使用Rider 2019.1 + Unity3D 2018.3.4,在安装完Rider之后,在Unity中 ...
- Unity项目代码书写规范
以Google的代码规范为主,稍加改动 https://google.github.io/styleguide/csharp-style.html 书写规范 基础写法 Pascal和驼峰混用,参数用驼 ...
- Unity使用代码动态给按钮赋值各个状态下的图片
一个小知识点,怕忘记,所以记录下.废话不多说,直接上代码: 未赋值之前: 使用下面代码赋值: using UnityEngine; using UnityEngine.UI; public class ...
- Unity UI代码自动生成
最近在做新项目跟同事讨论UI制作方案, 这里就说下根据节点来生成UI代码, 这个工具可以根据预设生成一个分布类.目前组件还不是很完善, 自己使用需要修改部分代码 组件功能如下: 1. 自动设置引用 ...
- Unity shader 代码高亮+提示
Shader Unity Support This is Unity CG Shaders Support. It has code completion support and uses C/C++ ...
随机推荐
- 节点操作js jQuery
append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() - 在被选元素之前插入内容 functi ...
- Matlab中的mapminmax函数学习
premnmx() is obselete. Use MAPMINMAX instead. >> x1=[1 2 4] >> [y,ps]=mapminmax(x1); 得到: ...
- nginx 高并发配置参数(转载)
声明:原文章来自http://blog.csdn.net/oonets334/article/details/7528558.如需知道更详细内容请访问. 一.一般来说nginx 配置文件中对优化比较有 ...
- iOS 指定圆角个数
需要实现的效果很明确,只要左上和右上两个地方圆角,以前都是通过layer 直接设置四个角都变成圆角,然后我就开始了强大的搜索功能 然后我就获得了我想要的东西 技术链接:http://www.xuebu ...
- WebService 生成类的命令语句
在开发项目中,有时候需要调用webservice接口程序,根据项目规定有的项目是直接引入接口,有的是需要把接口生成代理类的形式在项目中使用,根据项目需要来取舍. 以下列出项目中常用的Webservic ...
- Spark的WorkCount的例子
之前为了搭建scala开发spark的环境花了几天的时间,终于搞定了,具体可以参考:http://www.cnblogs.com/ljy2013/p/4964201.html .下面就是用一个示例 ...
- luajava学习一
luajava环境的搭建就不写了,网上百度,google下就ok啦. 我是在android平台下运行的项目,好了先看代码 TextView tv=(TextView)findViewById(R.id ...
- H3C汇聚层交换机认证在线人数展示系统之CheckList和燃尽图(16/04/06-16/04/13)
一.CheckList(核查表) 序号 事件 计划完成时间 实际完成时间 未延迟 未完成 完成 1 登录口令加密以及解密 16/04/06 16/04/06 Y 2 表的创建和IP以及口令 ...
- SVN 服务启动报错 0x8007042a
服务器环境:Windows Server 2008 R2 企业版,Visual SVNServer 2.6.5 不能签出代码,发现svn服务关闭,手动启动报错: 事件查看器: Error: no li ...
- react native 常用第三方库
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Helvetica; color: #000000 } p.p2 { margin: 0.0p ...