Unity3D——人物对话UI制作

本文介绍了在Unity3D中制作人物对话UI的步骤,包括Asset的添加,Canvas与动画的配置。详细讲述了如何从Asset Store获取资源,设置Canvas上的按钮和气泡动画,并分享了在实现过程中遇到的坑,如误删button脚本和调整canvas像素的问题。文章还提到了采用GameDirector、IUserAction、Speak、ComFactory和SceneController的设计模式进行代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次作业其实难度没有之前巡逻兵什么的大,但是坑比较多,需要对canvas与animator比较了解。下面是我的一张成品图:
这里写图片描述

1 添加Asset,Canvas与动画

(1)Asset

在场景中我们需要简单的天空盒,需要两个人物,也需要对话框。所以我在Asset Store中下载了如图中的两个资源包。
这里写图片描述
这里写图片描述

(2)Canvas

添加canvas,在下面添加两个button,如下所示:
这里写图片描述
要注意的是,我们需要给这两个bubble加入动画,那就是出现和消失的动画。就参考师兄的博客上制作就好了。
这里写图片描述
其实动画的制作就是气泡的出现和气泡的消失,只需要对气泡的rect.transform以及scale作处理就好了。别忘了要设置一个参数,控制状态的转化。
这里写图片描述
我在这里其实踩了几个坑的,一个是在设置button的动画的时候,一不小心把button的自带的script删了,导致button不是button。还有一个就是button中的Text无法显示,这个问题是因为canvas的像素比较低,需要调节canvas的像素就好了。
再设计完简单的场景之后,就是脚本了。以下是代码部分。

代码实现

代码设计模式:

我的设计模式是参考师兄的,主要是按照下面这个UML图来写的。
这里写图片描述

GameDirector
public class GameDirector : System.Object{
    private static GameDirector _instance;

    public SceneController currentSceneController { get; set; }
    public static GameDirector getInstance()
    {
        if(_instance == null)
        {
            _instance = new GameDirector();
        }
        return _instance;
    }

    public int getFPS()
    {
        return Application.targetFrameRate;
    }

    public void setFPS(int fps)
    {
        Application.targetFrameRate = fps;
    }
}
IUserAction
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值