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++ ...
随机推荐
- android学习之ListView
移通152余继彪 该组件用于显示列表的view 包含了三个关键元素 listView 适配器 以及数据,适配器主要是用于将数据映射到listview,适配器数据主要是有hasmap 配合list对每 ...
- 封装pyMysql
#!/usr/bin/python import MySQLdb class SpiderPDO: def __init__(self): db_host = '127.0.0.1' db_user ...
- 同上! 下拉复选框 点击当前的checkbox 选中后面li 添加到指定区域
(function() { $(".cxbtntj").click(function(){ console.log($("#jsLi1").attr(" ...
- Httpclient请求数据(post)
public static String loginCheck_POST_HttpClient(String name,String pass,String url){ String result = ...
- 例子:Bluetooth app to device sample
本例子演示了: 判断蓝牙是否打开,是通过一个HRsult值为0x8007048F的异常来判断的 catch (Exception ex) { if ((uint)ex.HResult == 0x800 ...
- eap-peap/mschapv2
eap-peap/mschapv2 文件路径 用途 示例 备注 #gedit /usr/local/etc/raddb/sites-available/default #gedit /us ...
- 移动端1px
移动端不同尺寸设备dpi不同,会造成1px线条不同程度的缩放,可利用媒体查询device-pixel-ratio,进行不同情况匹配: @media(-webkit-min-device-pixel-r ...
- 关于freeCAD
FreeCAD界面 FreeCAD的功能目的是成为一个3D CAD 建模工具.她的开发完全遵循 Open Source (GPL & LGPL License)协议. FreeCAD的目标直指 ...
- css2----兼容----ie67的3像素bug
发生条件:当浮动元素和非浮动元素相邻 时候,ie67下,两个元素就会多出3像素的间隔,其实是浮动元素产生的margin值 解决办法:1:让没有浮动的元素也浮动: 2:让浮动元素产生margin-*:- ...
- iOS 上拉下拉刷新简单实现代码
一般说到上拉刷新下拉刷新,很多人可能想到的是一个第三方开源框架EGORefresh,下面说下,如何自己写代码实现. UITableView本身是一个UIScrollView,所以UITableView ...