Unity3D效果实现:文字对话
逻辑:按下鼠标左键,人物表情切换,文字切换
脚本代码:需要一个消息管理类和消息类
消息管理类:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MessageManager : MonoBehaviour
{
//背景图
public Image Bgimage;
//头像图像
public Image headImage;
//讲话人
public Text NameText;
//内容
public Text ContentText;
//储存消息
public List<Message> messages;
//消息索引
private int index = 0;
void Start()
{
messages = new List<Message>();
Message msg = new Message() { Name = "小黄", Content = "请问探险森林怎么走?", ImageName = "ShayHead" };
messages.Add(msg);
}
Message GetMessage()
{
if(index<messages.Count)
{
return messages[index++];
}
return null;
}
// Update is called once per frame
void Update()
{
if(Input.GetMouseButtonDown(0))
{
Message();
}
}
void Message()
{
//获取对话
Message msg = GetMessage();
if(msg!=null)
{
if(msg.type==MessageType.Message)
{
//从文件夹动态加载
headImage.sprite = Resources.Load<Sprite>(msg.ImageName);
NameText.text = msg.Name;
ContentText.text = msg.Content;
}
if(msg.type==MessageType.BackGround)
{
Bgimage.sprite = Resources.Load<Sprite>(msg.BackGround);
Message();
}
}
}
}
消息调用类:
using System.Collections; using System.Collections.Generic; using UnityEngine; //枚举类型,判断是更改消息还是背景 public enum MessageType { Message, BackGround } public class Message { //枚举类型,默认为对话类型 public MessageType type = MessageType.Message; public string Name; public string Content; public string ImageName; public string BackGround; }

浙公网安备 33010602011771号