24.unity对话处理(List与class)

今天要做的事情就是让系统可以分辨
哪段文字=角色,哪段文字=心情,哪段文字=对话内容!

进行文字标记,撷取文字档案内的讯息,为了能更精确的掌握对话资讯,才能做对应的互动,取用正确的图片。

一、建立标记规则

第一步要先建立自己的标记规则,像标记式语言那样可以用某些符号表达某一种讯息,那我这次做很简单的标记,只要能分出是谁说话、甚麽心情、说甚麽话三种资讯。

结构:人物心情*说话内容

例句:

小红帽:开心*阿嬷好!

决定好标记规则之後,这套语言系统的对话文件就依照自己的规则来写吧!

二、将规则写成类别

第二步将规则写成类别,然後将取得标记的资料归类。
依造标记规则,创立对话资讯类别,取名RolePart

public class RolePart //类别,专门储存对话资料
    {
        public string RoleName { get; set; }   //人物
        public string RoleMood { get; set; }   //心情
        public string RoleContent { get; set; }//说话内容
    }

get、set是属性的写法,详情请参考C#手册

三、用List储存物件

第三步使用List来存取class物件,List中的每一项就是一个物件

//新增一个清单
List<RolePart> RolePartList = new List<RolePart>();
//新增清单项目,用物件添加
RolePartList.Add(new RolePart() { RoleName = "人物", RoleMood ="心情", RoleContent="说话内容"});

结合文件输入

unity预设脚本本身就是一个类别,所以依样是类别的规则要写在同级。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

//自订义类别
public class RolePart {
 public string RoleName { get; set; }   //人物
 public string RoleMood { get; set; }   //心情
 public string RoleContent { get; set; }//说话内容
}

//unity预设好,继承自MonoBehaviour的类别
public class Model : MonoBehaviour {
 //导入文件
 public TextAsset textFile; 
 //新增一个清单
 private  List<RolePart> RolePartList = new List<RolePart>();
 
 //得到文件文字的方法
 void GetTextFormFile(TextAsset file){    
	//确保清单是空的
    **RolePartList*.Clear();*        
	//读取文件,以行为单位,用字串阵列收
    string[] lineData = file.text.Split('\n');

	//将阵列内的文件文字分成物件并储存至清单
    foreach (var line in lineData)  {
	 //用:和*断句,并且分别储存至阵列内,将会得到人物[0]、心情[1]、对话内容[2]
     char[] SplitChar ={':','*'};  
     string[] lineWord = line.Split(SplitChar);
     //新增物件至清单,物件由阵列组成
     RolePartList.Add(new RolePart() { RoleName = lineWord[0], RoleMood = lineWord[1], RoleContent=lineWord[2]});
    }

	 //印出结果
     foreach (var line in RolePartList) {
      Debug.Log(line.RoleName+":"+line.RoleContent+" (心情:"+line.RoleMood +") ");
     }
  }

void Start() {
  GetTextFormFile(textFile);
  Debug.Log("end");
	    }
	}

输出结果
2.png


<<:  连续 30 天 玩玩看 ProtoPie - Day 9

>>:  Two Sum 演算法初阶题,Ruby 30 天刷题修行篇第九话

Day14 NiFi - NiFi Expression Language

今天要来介绍的是 NiFi Expression Language (以下简称NEL)。在前一篇我们...

Day 2 靶机环境建立

在第一天我们建立好Kali的测试环境後,看到玲琅满目的工具可以使用,首先一定想到两个问题: 先用哪个...

NNI安装在本机(Windows版)

说了好几天的概念,再不动手真的会睡着。让我们先来本机炸一炸,加深我们的学习动机。 安装前,先注意两大...

GitHub Wiki - 为你的 Repository 加入文件管理功能

今天我们来谈一点轻松的功能 - GitHub Wiki 身为开发人员,多多少少接触一些文件,可能是与...

Day 3 基本范例

前言 今天会介绍一些 flask 的基本函式,所以我们还没有正式开始写专案。这些基本的函式十分常用,...