Unity-学习笔记-fungus插件实现对话

Fungus插件实现对话

Fungu是免费的对话系统插件,直接在unity的assetsstore里下载就好了,里面有很多的案例可以直接下载
时间关系后面有时间再做详细的记录吧
这里只说一点
如果需要对碰撞体进行对话的话,不管是collider还是charactercontroller,都需要通过被碰撞体的istrigger进行判断,如果用各自的oncollider/oncontrollercollier方法会出现不断重复的情况,使用istrigger就不会,一次接触只会出现一次
感觉后面还需要实现表情的出现和不同的事件进行判断,不过这个后面再说吧
题外话
由于有一个好朋友临近生日,想着用一年来所学的知识给他做一个简单的情景剧小游戏,所以更新博客的频率会下降很多,之前一直做的项目也还没做完,所以只能硬着头皮上了~
加油~如果小游戏做完的话可能会上传到github

同天更新一下
fungus还有需要扩展的地方
所以是需要我们自定义脚本的
这个是第一次体验,所以记录一下
通过给需要添加到fungus插件的自定义脚本添加一个命名空间,然后重写他的onenable和continue的方法,在类前添加一个注解就可以实现添加自定义脚本的功能了

详细的思路可以直接参考下面大佬的代码

https://blog.csdn.net/zhang2333333333/article/details/108012140

记录一下,不然这个星期可能都不会写博客了,虽然观看量不多,不过还是鞭策一下自己不要太松散了~

拓展-通过fungus实现碰撞弹出对话框

给需要弹出对话框的物体添加coliderflowchart脚本
给这个物体的colider设置为trigger
打开flowchat编辑框,把block的启动条件修改为trigger
再设置需要显示的内容即可
另一个物体需要添加colider和对应的rigidbody组件,否则无法正常检测碰撞

拓展-在代码里动态修改say里的storytext

根据源码,say继承了command和一个接口,那个接口不重要,因为源码里他没有太多的方法和内容
通过观察发现say里重写了command的虚方法后就可以调用了
因此简单的思路就是在command里添加一个你需要的虚方法,比如我这里需要动态获得和修改say的storytext的话,

1

就需要写两个虚方法

 public virtual string GetStoryText()
        {
            return "123121312";
        }

        public virtual void SetStoryText(string text)
        {

        }

方法名和方法体里的东西都随便,这个没啥关系,因为我们实际的逻辑是在继承了command的say类里重写的
到这里command类的任务就完成了

2

然后在say类里重写这两个方法即可

public override string GetStoryText()
        {
            return storyText;
        }

        public override void SetStoryText(string text)
        {
            storyText = text;
        }

3

然后就可以通过fungus的api去调用函数啦

GetFlowchart().FindBlock("block名称").CommandList[5].SetStoryText("as扥打算扥");
GetFlowchart().FindBlock("block名称").CommandList[5].GetStoryText();
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淳杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值